![](/img/trans.png)
[英]Create Executable Jar with Maven (maven-assembly-plugin) Not Working vs. Eclipse Export Function
[英]Eclipse built-in jar export option vs Maven assembly plugin
我使用IntelliJ IDEA生成一个带有maven-assembly-plugin
的jar文件。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<archive>
<manifest>
<mainClass>test.LeanFTest</mainClass>
</manifest>
</archive>
<finalName>${project.artifactId}-fatjar-${project.version}</finalName>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
</plugin>
它不起作用,它在执行期间不断询问依赖性。 我无法使用jar文件,因此我将项目导入Eclipse并使用了内置的jar导出选项。 这罐子工作正常。 我找不到这些jar文件之间的区别。
原因可能是Eclipse在清单文件中生成了“Class-Path:”条目。 尝试通过添加类似(按心,未选中)的方式更新.pom文件中的程序集conf:
<addClasspath>true</addClasspath>
默认情况下,maven-assembly-plugin不会捆绑您自己的jar独立运行所需的所有依赖项。
因此,您需要在插件配置下添加以下内容:
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
结果,插件标签变为:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<archive>
<manifest>
<mainClass>test.LeanFTest</mainClass>
</manifest>
</archive>
<finalName>${project.artifactId}-fatjar-${project.version}</finalName>
<appendAssemblyId>false</appendAssemblyId>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef> <!-- the secret -->
</descriptorRefs>
</configuration>
</plugin>
你可以运行:
java -jar path/to/LeanFTest.jar
直接运行程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.