1. 打包jar时,想排除所有的resource文件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>default-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<!--<classifier>lib</classifier>-->
<excludes>
<exclude>config/**</exclude>
<exclude>*.xml</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
这里有几个关键点
<id>default-jar</id>
这是默认的打包id,如果不加这个的话,同时你又没有加
<classifier>lib</classifier>
或者
<finalName>aaaaa</finalName>
那么执行maven时会出现
maven-jar-plugin:2.3.1:jar (default-jar) @ *******
Building jar: *******
maven-jar-plugin:2.3.1:jar (default) @ *******
这时候你会发现这个exclude根本没有起作用,那是因为第一次执行default-jar时,使用的是默认的配置,第二次跑default才有exclude配置,但是因为第二次和第一次打包名相同,于是第二次就没有运行。
所以你要想exclude有效的话,要么把这个配置的名字改成default-jar,这样就只运行一次jar命令了。
另外就是加上finalName或是classifier,这样就有两次jar命令,你会发现会生成两个jar包,一个包含resource,另一个不包含resource.
另外如果配置<exclude>config</exclude> 则不起作用,如果配置<exclude>config/*</exclude>则只排除了config文件夹下的文件,如果配置
<exclude>config/**</exclude>则会排除config整个文件夹
2. 打war包时排除resource
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<warSourceExcludes>src/main/resources/**</warSourceExcludes>
</configuration>
</plugin>
</plugins>
</build>
这个我没有测试过
3. 想把依赖关系打成一个包
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<excludeArtifactIds>junit,serlvet-api</excludeArtifactIds>
</configuration>
</execution>
</executions>
</plugin>
还可以拷贝resource
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
- <version>2.3</version>
- <executions>
- <execution>
- <id>copy-resources</id>
- <phase>package</phase>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <configuration>
- <encoding>UTF-8</encoding>
- <outputDirectory>${project.build.directory}</outputDirectory><!-- 把配置文件拷到和jar包同一个路径下 -->
- <resources>
- <resource>
- <directory>src/main/resources/</directory>
- <includes>
- <include>config.xml</include>
- <include>log4j.xml</include>
- </includes>
- <filtering>true</filtering> <!--这个为true可以进行变量替换,替换配置文件中的${***}-->
- </resource>
- </resources>
- </configuration>
- </execution>
- </executions>
- </plugin>