我想创建单个可执行jar,它将包含来自maven的所有jar和所需的配置文件。这与maven-dependency-plugin有关。我应该包含哪些jar文件?安装maven后我们在lib文件夹中的所有文件?
我该如何开始? Launcher类是org.codehaus.plexus.classworlds.launcher.Launcher?
谢谢。
答案 0 :(得分:2)
你必须在你的pom文件中添加maven程序集插件,它应该是这样的
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>org.codehaus.plexus.classworlds.launcher.Launcher</mainClass>
</manifest>
</archive>
</configuration>
<version>2.3</version>
</plugin>
我猜你的Launcher类中有一个main方法定义,它将是你的应用程序的入口点。在此之后,您必须使用运行项目所需的依赖项来打包代码。在终端中,请参阅您的项目主目录并使用
进行构建mvn assembly:assembly
将生成两个jar文件,使用jar依赖于运行您的应用程序。现在使用
运行你的jarjava -jar your_jar_with_dependency.jar
答案 1 :(得分:0)
您可以尝试使用maven-dependency-plugin来删除未使用的依赖项。它会生成一个关于你宣布和使用什么的html报告,你宣布和不使用什么,你在使用什么而不是声明。清除在编译时使用的那些只会很有用,但它是一个很好的起点。此外,创建庞大的jar并不总是最佳选择,maven背后的想法不是必须打包所有依赖项并分发它们,而是依靠公共存储库来下载依赖项。