这篇文章将展示如何使用Jenkins Continuous Integration自动执行Java Web应用程序(使用MYSQL DB和基于Hibernate ORM在基于REST的Jersey2 Spring环境中开发的学生申请应用程序)的发布过程-上载发布工件到发布存储库。 如上一篇文章在Windows上使用Jenkins自动执行快照Java工件的部署和上载中所述,仅在将快照工件上载到快照存储库中之后,才能运行使用本文配置的作业。 链接中的“ 使用Jersey REST和Spring一起构建Java Web应用程序”给出的更早的文章中介绍了实际应用程序的详细信息。

1.为Github生成SSH密钥(无密码)

Jenkins不支持SSH密钥的密码短语,因此无需密码即可生成Gihub帐户的SSH密钥。 请按照“ 生成SSH密钥”下给出的说明进行操作,生成不包含密码的SSH密钥 ,然后上传到Github帐户。

2.强制Jenkins使用SSH密钥以用户身份运行

在Windows上,Jenkins使用其运行用户身份的SSH密钥,该密钥位于C:\ Users <用户名> .ssh下。 因此,Jenkins必须以具有“用户名”的用户身份运行。

在命令提示符下键入“ services.msc”以打开“服务管理”。 右键单击Jenkins服务,然后选择“属性”。

在“ Jenkins属性”窗口中,导航到“登录”选项卡。 选择以“此帐户”身份登录,输入该帐户的详细信息(使用“浏览”选项来选择/检查该帐户的名称),然后单击“确定”。 帐户凭据通常将与Windows的登录帐户匹配,如下面的快照所示。

保存更改后,通过右键单击Jenkins服务并从“服务管理”重新启动Jenkins服务,然后选择“重新启动”,如下所示

3.安装插件

在Jenkins仪表板上,导航到Manage Jenkins –> Manage Plugins,如下面的快照所示。

安装以下插件,然后重新启动Jenkins,以使更改生效。

  • Jenkins版本插件(用于Maven版本)

4.配置系统

在Jenkins仪表板上,导航到Manage Jenkins –> Configure System,如下面的快照所示。

进入“ Maven版本插件”部分。 启用Nexus-Pro支持,输入Nexus URL,Nexus用户凭据并保存更改。

5.创建一个新的詹金斯工作

在Jenkins仪表板上,单击“新作业”以创建新作业。 输入作业的名称,然后选择“ Build a maven2 / 3 project”作为选项,然后单击OK,如下所示。

在“新作业配置”屏幕上,进入“源代码管理”部分,并为项目指定Git存储库URL,如下所示。 在“其他行为”部分,单击“添加”,然后选择“签出到特定的本地分支机构”。 输入分支名称为master,然后保存更改。

进入“构建环境”部分,启用“ Maven Release Build”选项并输入发布目标。

进入“构建”部分,输入构建快照的maven目标,如下所示,然后保存更改。

进入“构建设置”部分。 选择“电子邮件通知”选项,然后输入电子邮件收件人的值,如下所示。 保存更改。

6.配置settings.xml

为了将构建的Maven工件上载到工件服务器,请使用相同的参数配置C:\ Program Files(x86)\ Jenkins \ tools \ hudson.tasks.Maven_MavenInstallation \ Maven_3.1 \ conf文件夹中的Jenkins settings.xml。如在系统上的Maven安装的默认settings.xml(通常在Windows机器的C:\ Program Files \ Apache Software Foundation \ apache-maven-3.1.0 \ conf下找到)中所找到的。

通常,需要在Maven版本的settings.xml中使用httpHeaders配置用于登台存储库的服务器部分。

<servers><server><id>sonatype-nexus-staging</id><username>username</username><password>password</password><configuration><httpHeaders><property><name>User-Agent</name><value>Maven m2Release (java:${java.vm.version} ${env.BUILD_TAG }</value></property></httpHeaders></configuration></server>
</servers>

此外,型材断面需要进行配置的PGP签名,如何产生与Maven PGP签名的细节可以从节中找到生成密钥对在如何生成PGP签名与Maven

<profiles><profile><id>gpg-release</id><properties><gpg.passphrase>passphrase</gpg.passphrase><gpg.useagent>true</gpg.useagent><gpg.defaultKeyring>false</gpg.defaultKeyring><gpg.homedir>C:/Users/Sara/AppData/Roaming/gnupg</gpg.homedir><gpg.publicKeyring>C:/Users/Sara/AppData/Roaming/gnupg/pubring.gpg</gpg.publicKeyring><gpg.secretKeyring>C:/Users/Sara/AppData/Roaming/gnupg/secring.gpg</gpg.secretKeyring></properties> </profile>
</profiles>

6.更新pom.xml

需要使用build部分下的以下插件来配置项目的pom.xml文件。

  • Maven执行器插件
  • Maven发布插件
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-enforcer-plugin</artifactId><version>1.2</version><executions><execution><id>enforce-maven</id><goals><goal>enforce</goal></goals><configuration><rules><requireMavenVersion><version>(,2.1.0),(2.1.0,2.2.0),(2.2.0,)</version><message>Maven 2.1.0 and 2.2.0 produce incorrect GPG signaturesand checksums respectively.</message></requireMavenVersion></rules></configuration></execution></executions></plugin></plugins><pluginManagement><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-release-plugin</artifactId><version>2.4.2</version><configuration><tagBase>https://github.com/elizabetht/StudentEnrollmentWithREST/tags</tagBase><mavenExecutorId>forked-path</mavenExecutorId><useReleaseProfile>false</useReleaseProfile><arguments>-Psonatype-oss-release</arguments></configuration></plugin></plugins></pluginManagement>
</build>

使用maven-gpg-plugin的配置文件部分更新pom.xml

<profiles><profile><id>sign</id><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-gpg-plugin</artifactId><executions><execution><id>sign-artifacts</id><phase>verify</phase><goals><goal>sign</goal></goals></execution></executions></plugin></plugins></build></profile>
</profiles>

在pom.xml中添加一个分发管理部分,以指定快照和登台存储库URL。

<distributionManagement><repository><id>sonatype-nexus-staging</id><url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url></repository><snapshotRepository><id>sonatype-nexus-snapshots</id><url>https://oss.sonatype.org/content/repositories/snapshots</url></snapshotRepository>
</distributionManagement>

8.立即建立

完成上述配置步骤后,单击Jenkins –> Upload REST Release Artifacts(或相应的Job名称)下的“立即构建”,以根据配置构建项目。

控制台输出中包含有关配置已启动哪些步骤以及整个构建结果的详细日志。 验证构建成功。

9.执行Maven发布

一旦构建成功并将快照上传到快照存储库,请单击Jenkins下的“ Perform Maven Release” –>上载REST发行工件(或相应的作业名称)以开始Maven发行过程。

验证发行版本和下一个开发版本是否正确。 启用“指定自定义SCM注释前缀”以输入自定义SCM注释。 启用“指定自定义SCM标签”以输入自定义SCM标签。 单击Schedule Maven Release Build。

一旦发布过程成功,登台存储库将与发布工件一起上载。

因此,只需通过Jenkins单击按钮,就可以自动完成将工件向暂存库进行正式发布以及触发向收件人发送电子邮件的整个过程。 然后可以通过关闭(如果它仍处于打开状态)和发布步骤来使用登台存储库,以完成工件的升级。

参考: “ 我的实验与技术”博客中的JCG合作伙伴伊丽莎白·托马斯(Elizabeth Thomas)在Windows上使用Jenkins在Java上自动发布了Java工件 。

翻译自: https://www.javacodegeeks.com/2014/02/automating-the-release-of-java-artifacts-using-jenkins-on-window.html

在Window上使用Jenkins自动发布Java工件相关推荐

  1. jenkins编译java_在Window上使用Jenkins自动发布Java工件

    jenkins编译java 这篇文章将展示如何使用Jenkins Continuous Integration自动执行Java Web应用程序(使用MYSQL DB和基于Hibernate ORM在基 ...

  2. jenkins部署java_在Window上使用Jenkins自动部署和上传快照Java工件

    jenkins部署java 这篇文章将展示如何使用Jenkins Continuous Integration自动执行Java Web应用程序(使用MYSQL DB和基于Hibernate ORM在基 ...

  3. 在Window上使用Jenkins自动部署和上传快照Java工件

    这篇文章将展示如何使用Jenkins Continuous Integration自动执行Java Web应用程序(使用MYSQL DB和基于Hibernate ORM在基于REST的Jersey2 ...

  4. jenkins是什么_使用 Jenkins 自动发布服务到 Kubernetes

    使用 Jenkins 自动发布服务到 Kubernetes Jenkins 是什么 一个比较流行的开源 CI/CD 工具 CI/CD : 持续集成/持续部署 Kubernetes 是什么 容器化工具 ...

  5. 6.Jenkins-代码更新Jenkins自动发布项目

    代码更新Jenkins自动发布项目 目的:实现开发一提交,jenkins就自动发布,无需人工干预 1.找到对应的项目,然后找到构建触发器 勾选 Build when a change is pushe ...

  6. mmall 学习笔记--分类管理模块,商品管理模块,购物车模块,收货地址模块,支付模块,订单管理模块,云服务器线上部署,自动发布,

    ()数据库配置 常见语句 Create table 'my_table'( int id not null auto_increment ) () 建表的时候出现text,bigInt,decimal ...

  7. Linux自动发布Java程序脚本

    Linux自动发布Java程序脚本 1. 编译脚本 2. 启动脚本 3. 停止脚本 4. 最终发布脚本 1. 编译脚本 #! /bin/bash time="`date +%Y%m%d-%H ...

  8. Devops之Gradle SpringBoot构建打包工程jar、搭建jenkins自动发布

    本文逐渐涉及当前敏捷开发中非常火的DevOps相关的技术,也就是自动化开发运维.整体偏向于环境搭建,整体学习路线为: (1)SpringBoot+Gradle+Nexus远程仓库构建打包工程jar ( ...

  9. git+github+jenkins自动发布

    git+github+jenkins 1. 说明 1.1 主机的配置 1.2 安装 2. 具体步骤 2.1 将开发者公钥添加到github 2.2 github上新建项目仓库 2.3 开发者提交文件测 ...

最新文章

  1. Linux内存、Swap、Cache、Buffer详细解析
  2. 6名学生返校后被判定为密接,高校紧急通知!
  3. html中隔行的代码,js+css 控制表格隔行变色与单行高亮的代码
  4. vue openlayer单击地图事件循环多次执行_12道vue高频原理面试题,你能答出几道?
  5. 【JAVA中级篇】线程池
  6. java 数据库连接池配置方式
  7. mysql数据库sql注入原理_如何SQL注入的原理和SQL注入的基础
  8. 求n从1到20阶乘的和(即1+2!+3!+4!+...+20!)
  9. java定时器的原理_JAVA Timer 定时器原理 | 学步园
  10. 正则表达式入门(上)---字符组和量词
  11. Android涂鸦画板原理详解——从初级到高级(一)
  12. java计算机毕业设计再生产公益管理系统设计与实现MyBatis+系统+LW文档+源码+调试部署
  13. 众多快递中驿站代收的单号怎么查询、筛选的
  14. Word 2010安装包
  15. 多个WordPress网站之间共用用户数据的方法实现
  16. 智能手机相机镜头的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  17. educoder(头歌)-CSS从入门到精通-基础知识
  18. 设置语言为中文,重启手机后桌面数字时钟,“星期五“变成“Friday“
  19. MOS管开关电路应用及MOS管原理、选型
  20. python 海龟turtle画爱心

热门文章

  1. 文章中文字乱码问题解决办法集合
  2. html session 登录页面跳转页面跳转页面,session失效后跳转到登陆页面
  3. bean交个spring和new比较区别
  4. 栈应用(中缀表达式转后缀表达式并计算后缀表达式的值)
  5. Spring boot (5):Spring data jpa 的使用
  6. 清理jdk注册表_JDK 9早期版本安装后的Windows注册表清理
  7. jolokia_Hawtio和Jolokia的Hibernate统计
  8. JMetro版本11.5.11和8.5.11发布
  9. java lambda函数_Java SE 8新功能介绍:使用Lambda Expression进行函数式编程
  10. JDK 14:记录,文本块等