前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >maven项目公用项目配置文件如何配置

maven项目公用项目配置文件如何配置

作者头像
神秘的寇先森
发布2020-03-20 11:15:51
2K0
发布2020-03-20 11:15:51
举报
文章被收录于专栏:Java进阶之路Java进阶之路

一般公司maven项目都是多模块,这样解耦会比较方便,但是经常会遇到多个模块的某个配置文件一样,如果每个模块都配置一个,那样最后打包会很臃肿,以下方法可以解决这个问题。

资源共享

共享资源插件可以用于在多模块构建中的模块之间共享资源。在以下示例中,我们有一组文件,我们想在项目的几个模块中复用这些资源。

设置一个用于共享资源的模块

创建一个名为common的新模块。将文件放在以下目录中,确保共享文件位于src / main / resources目录中:

代码语言:javascript
复制
common
|
+- src
|  |
|  `- main
|     |
|     `- resources
|        |
|        +- kafka_consumer.properties
|        |
|        `- redis.properties
|
`- pom.xml

共享资源的POM 应该如下所示:

代码语言:javascript
复制
<project>
  ...  
  <groupId>org.test</groupId>
  <artifactId>common</artifactId>
  ...
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-remote-resources-plugin</artifactId>
        <version>1.8.0</version>
        <executions>
          <execution>
            <goals>
              <goal>bundle</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <includes>
            <include>**/*.properties</include>
          </includes>
        </configuration>
      </plugin>
    </plugins>
  </build>
  ...
</project>

这将在generate-resources阶段将共享资源捆绑到JAR文件中。这意味着其他模块可以在此后的任何阶段使用这些资源。

配置其他模块以使用共享模块

要在另一个模块中使用共享资源,您需要按如下方式配置插件:

代码语言:javascript
复制
<project>
  ...
  <groupId>org.test</groupId>
  <artifactId>resource-consumer</artifactId>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-remote-resources-plugin</artifactId>
        <version>1.8.0</version>
        <configuration>
          <resourceBundles>
            <resourceBundle>org.test:common:${project.version}</resourceBundle>
          </resourceBundles>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>process</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
   </plugins>
  </build>
  ...
  <dependencies>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>common</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>
</project>

这将检索common模块的捆绑资源,处理捆绑中的每个资源,并将它们放入resource-consumer模块的$ {project.build.directory} / maven-shared-archive-resources目录中。

具体学习需要查看官方文档:http://maven.apache.org/plugins/maven-remote-resources-plugin/examples/sharing-resources.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 资源共享
  • 设置一个用于共享资源的模块
  • 配置其他模块以使用共享模块
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档