最近因項目須要,須要將項目打成jar包運行,項目爲普通jar包,在pom配置以下:java
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.5</version> <configuration> <archive> <manifest> <!-- 指定main方法所在類 --> <mainClass>com.xxx.Main</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin>
打包完成後,會將全部依賴的jar包打成一個jar文件,命令行使用apache
java -jar xxx.jar
運行。不過,在運行時發現一個問題:使用了maven多模塊開發,相同名稱的配置在多個模塊中都存在,打包後,配置文件並非所指望的,所以放棄了該方法。maven
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.4.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <!-- 指定main方法所在類 --> <mainClass>com.xxx.Main</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin>
一樣,打包完成後,會將全部依賴的jar包打成一個jar文件,命令行使用命令行
java -jar xxx.jar
運行。該方法打包後,配置文件爲所指望的配置文件,所以使用了此打包方法。 特此記錄。code