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

 有时候在一个项目中为了清晰划分不同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>  
  16.           

   在主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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值