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