Maven 多web模块项目配置(多war合并)

论坛 期权论坛 脚本     
匿名技术用户   2021-1-7 21:05   31   0

有时候在一个项目中为了清晰划分不同web模块需要配置多个web module 。如:

Java代码

收藏代码

  1. <modules>
  2. <!-- 主web应用 -->
  3. <module>cathy-web</module>
  4. <module>cathy-biz</module>
  5. <module>cathy-common-util</module>
  6. <module>cathy-common-intergration</module>
  7. <module>cathy-common-facade</module>
  8. <module>cathy-common-model</module>
  9. <module>cathy-common-dal</module>
  10. <module>cathy-core-service</module>
  11. <!-- 子web应用 -->
  12. <module>cathy-backend</module>
  13. </modules>

配置看起来很 简单,在打包的时候需要将这两个web打成一个war包又该如何配置呢?此时就需要使用到maven-war-plugin这个插件,当然这个插件的功能不仅仅是将多个war包合并成一个war.

在 cathy-web 这个module的pom 中的dependencies进行如下配置

Java代码

收藏代码

  1. <dependency>
  2. <groupId>com.david.demo</groupId>
  3. <artifactId>cathy-backend</artifactId>
  4. <type>war</type>
  5. </dependency>

在plugins增加如下配置

Java代码

收藏代码

  1. <!-- 合并多个war -->
  2. <plugin>
  3. <groupId>org.apache.maven.plugins</groupId>
  4. <artifactId>maven-war-plugin</artifactId>
  5. <configuration>
  6. <packagingExcludes>WEB-INF/web.xml</packagingExcludes>
  7. <failOnMissingWebXml>false</failOnMissingWebXml>
  8. <overlays>
  9. <overlay>
  10. <groupId>com.david.demo</groupId>
  11. <artifactId>cathy-backend</artifactId>
  12. </overlay>
  13. </overlays>
  14. </configuration>
  15. </plugin>

在主pom中的依赖中增加

Java代码

收藏代码

  1. <dependency>
  2. <groupId>com.david.demo</groupId>
  3. <artifactId>cathy-backend</artifactId>
  4. <version>0.0.1-SNAPSHOT</version>
  5. <type>war</type>
  6. <scope>runtime</scope>
  7. </dependency>

子web module 的结构是“



在项目的主目录下执行 mvn -Dmaven.test.skip=true后


可以看到子web module中的文件夹已经合并到主web中了,注意如果同名的文件夹和合并的,同时不合并空文件夹

在实际的项目中配置文件在不同的环境中配置是不同的,那么如何根据环境去参数化配置呢?

在主web的pom中进行如下配置

Java代码

收藏代码

  1. <profiles>
  2. <profile>
  3. <id>dev</id>
  4. <build>
  5. <filters>
  6. <filter>
  7. src/main/resources/META-INF/config-dev.properties
  8. </filter>
  9. </filters>
  10. </build>
  11. </profile>
  12. <profile>
  13. <id>test</id>
  14. <build>
  15. <filters>
  16. <filter>
  17. src/main/resources/META-INF/config-test.properties
  18. </filter>
  19. </filters>
  20. </build>
  21. </profile>
  22. </profiles>

Java代码

收藏代码

  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-war-plugin</artifactId>
  4. <configuration>
  5. <packagingExcludes>WEB-INF/web.xml</packagingExcludes>
  6. <failOnMissingWebXml>false</failOnMissingWebXml>
  7. <webResources>
  8. <resource>
  9. <directory>
  10. src/main/resources/config
  11. </directory>
  12. <filtering>true</filtering>
  13. <targetPath>WEB-INF/classes</targetPath>
  14. </resource>
  15. </webResources>
  16. <overlays>
  17. <overlay>
  18. <groupId>com.david.demo</groupId>
  19. <artifactId>cathy-backend</artifactId>
  20. </overlay>
  21. </overlays>
  22. </configuration>
  23. </plugin>

config目录中log4j.xml的配置文件中有:

Java代码

收藏代码

  1. <appender name="DEFAULT-APPENDER"
  2. class="com.david.common.log4j.DailyRollingFileAppender">
  3. <param name="file" value="P:/${host_name}/common-default.log" />
  4. <param name="append" value="true" />
  5. <param name="encoding" value="GBK" />
  6. <layout class="org.apache.log4j.PatternLayout">
  7. <param name="ConversionPattern"
  8. value="%d [%X{loginUserEmail}/%X{loginUserID}/%X{remoteAddr}/%X{clientId} - %X{requestURIWithQueryString}] %-5p %c{2} - %m%n" />
  9. </layout>
  10. </appender>

使用 mvn package -P test -Dmaven.test.skip=true 打包的结果是:

Java代码

收藏代码

  1. <!-- ===== [公共Appender] ===== -->
  2. <!-- [公共Appender] 默认 -->
  3. <appender name="DEFAULT-APPENDER"
  4. class="com.david.common.log4j.DailyRollingFileAppender">
  5. <param name="file" value="P:/test/common-default.log" />
  6. <param name="append" value="true" />
  7. <param name="encoding" value="GBK" />
  8. <layout class="org.apache.log4j.PatternLayout">
  9. <param name="ConversionPattern"
  10. value="%d [%X{loginUserEmail}/%X{loginUserID}/%X{remoteAddr}/%X{clientId} - %X{requestURIWithQueryString}] %-5p %c{2} - %m%n" />
  11. </layout>
  12. </appender>
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP