配置项说明
archiveClasses配置项
该配置的值为true
|false
,默认是false
。表示是否将class进行打包。
正常情况下war类型的工程,java代码编译后的类文件会放到WEB-INF/classes
目录下面,散装。 当该参数配置为true
时,会将所有的class打包为一个jar,jar的名字与war的名字一致(除了后缀)。然后把这个jar放到WEB-INF/lib
目录下,此时WEB-INF/classes
目录下是空的。
attachClasses配置项
该配置的值为true
|false
,默认是false
。表示在发布war包的时候是否同时发布一个jar包(只有classes,不包含页面相关文件)。
正常情况下war类型的工程,当我们执行install
或者deploy
的时候build出一个war包,安装到本地或者发布到远程。
当该参数配置为true
时,除了war包外还会多出一个jar包,不过该jar包的classifier默认为classes。
overlays配置节点
overlays配置的作用是,将指定war包中的内容与当前项目进行合并。合并策略:如果存在同名冲突,则使用当前项目中的文件。 overlay的具体配置项(include|exclude)可以指定包含或者排除特定模式的文件。
配置示例
以下为一些具体说明:
-
archiveClasses和attachClasses参数可以同时配置为true。此时打包文件中含有lib,不含classes。发布时会同时发布classifier为classes的jar包。
-
如果当前工程A需要从B工程的war包中合入页面文件,同时代码中也要使用B的类文件。
工程B包含配置如下:<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <attachClasses>true</attachClasses> </configuration> </plugin>
工程A包含配置如下:
<dependencies> <dependency> <groupId>groupB</groupId> <artifactId>B</artifactId> <version>1.0-SNAPSHOT</version> <classifier>classes</classifier> <scope>provided</scope> </dependency> <dependency> <groupId>groupB</groupId> <artifactId>B</artifactId> <version>1.0-SNAPSHOT</version> <type>war</type> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <overlays> <overlay> <groupId>groupB</groupId> <artifactId>B</artifactId> </overlay> </overlays> </configuration> </plugin> </plugins> </build>