java利用maven生成一個jar包,如何自動生成清單屬性文件(MANIFEST.MF),如何解決jar依賴問題?java
辦法很簡單:apache
只需在pom.xml文件中配置以下plugin便可:maven
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <mainClass>cn.com.inas.south.main.MainTaskExcuter</mainClass> </manifest> </archive> </configuration> </plugin>
運行mvn package命令便可生成MANIFEST.MFspa
該文件中包含了jar所需的依賴,以及入口類。插件
那如何把依賴的源代碼也打到這個jar包中呢,這個時候,maven-assembly-plugin插件就派上用場了xml
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <mainClass>cn.com.inas.south.main.MainTaskExcuter</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-with-dependencies,這樣就會把jar包和它的全部runtime依賴添加到一個jar包中了blog
運行上面的命令,就會在target目錄下生成**-jar-with-dependencies.jarip
最後java -jar 運行jar包即可順利執行。ci