Maven提示:有关可执行jar的所有信息
在分发代码时,可执行jar是非常有用的工具。 这意味着,只要将Java安装在客户端计算机上,至少在Windows和Mac上,您的用户只需双击jar即可启动程序。 另外,在命令行上,可以使用简单的命令行java -jar xxx.jar
轻松启动程序。
不用大惊小怪的类路径和相关的罐子。
从Maven创建可执行jar很简单,涉及使用maven-assembly-plugin
。 可以如下配置并添加到您的pom.xml中:
<plugin><artifactId>maven-assembly-plugin</artifactId><configuration><archive><manifest><mainClass>com.example.Main</mainClass></manifest></archive><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs></configuration><executions><execution><phase>install</phase><goals><goal>single</goal></goals></execution></executions></plugin>
让我们深入研究细节:
<goal>single<goal>
告诉插件我们要执行单个目标。 有关更多文档,请参见此处 。
<phase>install<phase>
告诉插件我们希望此任务作为安装生命周期事件的一部分运行。
<descriptorRef>jar-with-dependencies</descriptorRef>
告诉插件我们希望jar包含所有依赖项。 <mainClass>com.example.Main</mainClass>
告诉插件执行jar时应启动哪个类。
在这种情况下,我将插件设置为在安装生命周期内生成一个可执行jar,但是如果希望它成为生命周期的不同部分,则当然可以更改该设置。
您希望Maven为您完成的另一项任务是在发行版中创建可执行jar。
为此,您将需要配置maven-release-plugin以创建可执行jar。 可以按照以下步骤完成:
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-release-plugin</artifactId><version>2.5.1</version><configuration><goals>install</goals><preparationGoals>install</preparationGoals></configuration>
</plugin>
这里的关键是准备版本的配置,由release:prepare调用。 当配置为prepareGoal时,将在提交之前执行安装(默认prepareGoal是干净验证)。 通过将install添加到preparationGoals中,我们确保将在提交之前构建可执行jar。 它将使用与发行版相同的编号标记。 如果我们从1.3版升级到1.4版,则可执行jar将被命名为xxx-jar-with-dependencies-1.4.jar。
比较当您将安装配置为完成目标而不是准备目标时发生的情况。 在与上述相同的示例中,从版本1.3迁移到1.4,如果将install配置为completementGoal,则将在提交后运行安装,并且将生成的可执行jar称为xxx-jar-with-dependencies-1.5-SNAPSHOT.jar 。
目标(与preparationGoal和completionGoal相对)由release:perform运行。 默认情况下,它调用部署。 有关为何将其配置为调用安装的信息,请参见此处 。
总之,我希望您能看到使用Maven构建可执行jar并在每次发布项目时使用正确的release标签将其发布是多么容易。
翻译自: https://www.javacodegeeks.com/2015/02/maven-tip-all-about-executable-jars.html