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

Maven提示:有关可执行jar的所有信息相关推荐

  1. maven 可执行 jar_Maven提示:有关可执行jar的所有信息

    maven 可执行 jar Maven提示:有关可执行jar的所有信息 可执行jar是分发代码时非常有用的工具. 这意味着,只要将Java安装在客户端计算机上,至少在Windows和Mac上,您的用户 ...

  2. maven导出Java方法_eclipse导出maven工程的可执行jar包

    一.eclipse导出maven工程的可执行jar包 建立两个maven工程 ZKServer 和ZKClient 注意:用maven进行开发管理的话,默认的打出来的jar包是不能运行的,需要在pom ...

  3. 【收藏】Maven 生成打包可执行jar包

    Maven 生成打包可执行jar包 https://blog.csdn.net/daerzei/article/details/82883472

  4. 聚合maven+spring-boot打包可执行jar

    整整搞了一天,终于解决这个问题了.这里是四个module,module之间存在依赖,打包两个可执行jar,看下最终效果吧 聚合maven+spring-boot的搭建很简单,和普通的聚合maven没有 ...

  5. Maven 生成打包可执行jar包

    文章目录 1. 需求 2. 开发环境 3. Maven打包插件介绍 4. Maven使用maven-jar-plugin打可执行jar包 5. Maven使用maven-assembly-plugin ...

  6. maven打包可执行jar

    文章目录 1 场景 1.1 功能 1.2 特性 1.3 依赖maven插件 2 实现 2.1 代码目录结构 2.2 文件说明 2.3 打包可执行文件 3 获取项目相对路径 3.1 输出文件到项目相对路 ...

  7. java基础-可执行jar包

    2019独角兽企业重金招聘Python工程师标准>>> 1 简介 大家都知道java项目可以打包成一个可执行的jar包,当我们指定程序的入口main后,可以利用 java -jar ...

  8. java jar 可执行_java基础-可执行jar包

    1 简介 大家都知道java项目可以打包成一个可执行的jar包,当我们指定程序的入口main后,可以利用 java -jar YourApp.jar 命令运行可执行jar.那么它需要什么条件才能运行呢 ...

  9. maven_Maven提示:关于可执行jar的全部

    maven Maven提示:关于可执行jar的全部 可执行jar是分发代码时非常有用的工具. 这意味着,只要将Java安装在客户端计算机上,至少在Windows和Mac上,您的用户只需双击jar即可启 ...

最新文章

  1. android虚拟机下载地址,12bet备用网址「永久地址0365.tv」android虚拟机下载在虚拟机中安装Android 操作系统...
  2. dotNet中,取得指定日期所在月份的最后一天
  3. RestSharp .net 轻量级rest客户端
  4. Scala模式匹配,case 字符串,case 匹配类型,case 匹配数组,case 匹配List,case 匹配元组,case匹配case class和case object
  5. 安装cloudermanager时出现Acquiring installation lock问题(图文详解)
  6. java 查询线程池_[代码全屏查看]-我的 Java 线程池测试类
  7. POJ-1386 Play on Words 有向图欧拉通路判定
  8. HTML min/maxlength
  9. JavaSE----常用类(Object、Objects、Math)
  10. 循环嵌套外小内大原则
  11. Matlab实现——巧用灰色关联法完成“系统分析”与“综合评价”
  12. php ajax 同时验证 用户名 密码
  13. 爬虫基础 || 2.1 request介绍(功能比urllib丰富,附上简单的知乎爬虫)
  14. vue移动端复杂表格表头,固定表头与固定第一列
  15. 服务器建网站要数据库,云服务器建网站需要数据库
  16. 匿名函数的this指向
  17. Verilog学习笔记4:关于5M40ZE64C4N接地的问题
  18. 刷屏!日本内政部向国民宣传5G的短视频:未来将是这样!
  19. 为什么要使用kafka消息队列
  20. 架构成长之路 | 图解分布式共识算法Paxos教会协议

热门文章

  1. Servlet使用适配器模式进行增删改查案例(IBaseDaoUtil.java)
  2. 手把手教会你(单/多)文件上传(并修改文件默认的最大最小值)
  3. 使用IDM下载,不适用默认浏览器下载
  4. docker export_docker使用简介
  5. pythondocx模板_使用python-docx-template修改word文档
  6. 编译报错+解决方法:错误: 找不到符号
  7. 一篇文章指明做JavaWeb项目需要的前置知识+完整项目初解读(萌新必看,十分友好)
  8. graalvm_GraalVM上的Picocli:极快的命令行应用程序
  9. oracle adf_Oracle ADF和Oracle Jet一起工作。 建筑模式
  10. packt_Packt和Java Code Geeks提供的$ 5 Java编程书籍!