我想创建一个可执行的 jar,其中将包含来自 maven 的所有 jar 和所需的配置文件。这与 maven-dependency-plugin 更好。我应该包括哪些 jar 文件?安装maven后我们拥有的lib文件夹中的所有文件?
我应该如何开始呢?启动器类是 org.codehaus.plexus.classworlds.launcher.Launcher?
谢谢你。
您必须在您的 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 来运行您的应用程序。现在使用
java -jar your_jar_with_dependency.jar
您可以尝试使用maven-dependency-plugin摆脱未使用的依赖项。它将生成一个关于您声明和使用什么、声明和不使用什么、使用和不声明什么的 html 报告。仅清除您在编译时使用的那些会很有用,但这是一个很好的起点。此外,创建庞大的 jar 并不总是最好的选择,maven 背后的想法是不必打包所有依赖项并分发它们,而是依赖公共存储库来下载依赖项。