关于创建可执行的jar文件(assembly)

时间:2023-03-09 00:18:46
关于创建可执行的jar文件(assembly)

java利用maven生成一个jar包,如何自动生成清单属性文件(MANIFEST.MF),如何解决jar依赖问题?

办法很简单:

只需在pom.xml文件中配置如下plugin即可:

   <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.MF

关于创建可执行的jar文件(assembly)

该文件中包含了jar所需的依赖,以及入口类。

那如何把依赖的源代码也打到这个jar包中呢,这个时候,maven-assembly-plugin插件就派上用场了

            <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包中了

运行上面的命令,就会在target目录下生成**-jar-with-dependencies.jar

关于创建可执行的jar文件(assembly)

最后java -jar 运行jar包便可顺利执行。

关于创建可执行的jar文件(assembly)