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

jenkins编译java

这篇文章将展示如何使用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服务属性

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

詹金斯登录

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

詹金斯服务重启

3.安装插件

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

jenkins-manageplugins

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

  • Jenkins发行插件(用于Maven发行)

4.配置系统

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

詹金斯配置系统

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

jenkins-nexus-pro

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

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

詹金斯新工作

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

jenkins-sourcecodemgmt-release

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

jenkins-maven-releasebuild

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

詹金斯建立

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

jenkins-电子邮件通知

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签名的详细信息,请参见如何在如何使用Maven生成PGP签名中生成密钥对部分。

<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 –>上载REST发行工件(或相应的作业名称)下的“执行Maven发行”以开始Maven发行过程。

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

詹金斯执行行家发布

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

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

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

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

jenkins编译java

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344127.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工业级光纤收发器九大技术优势介绍

光纤收发器主要是通过光纤来进行传输的那些100M以太网或1000M以太网&#xff0c;不过也被大家称之为光纤交换机&#xff0c;简而言之&#xff0c;可以将我们要发送的电信号转换成光信号发送出去&#xff0c;同时将接收到的光信号转换成电信号&#xff0c;输入到我们的接收端&am…

单片机c语言篮球比分_基于单片机的篮球比赛计时计分器的设计

摘 要&#xff1a;本系统是采用单片机AT89C51作为本设计的核心原件。利用7段共阴LED作为显示器件。在此设计中共接入了2个7段共阴LED显示器&#xff0c;用于记录得分和比赛时间&#xff0c;显示范围可以达到0到99分&#xff0c;基本满足赛程需求。计分按照倒计时&#xff0c;每…

[渝粤教育] 西南科技大学 建筑制图 在线考试复习资料(1)

建筑制图——在线考试复习资料 一、单选题 1.截平面通过锥顶完全截割圆锥时,截交线为( ) A.椭圆 B.抛三角形 C.四边形 D.圆 2.下列说法正确的是( ) A.投影面垂直线满足中心投影规律 B.投影面垂直线可以在两个投影面反映集聚性 C.直线垂直于一个投影面,必然平行于其余两个投影面…

[渝粤教育] 西南科技大学 形式逻辑 在线考试复习资料

形式逻辑——在线考试复习资料 一、单选题 1. 下列直言命题主项周延,谓项不周延的有( )。 A.阿根廷不是北美国家 B.有些作物不是栽培的 C.所有宗教都不是科学 D.没有一种事物不是运动变化的 E.不都是可以避免的 2. 这几年参加注册会计…

echart 折线从左到右动画效果_echarts之自动切换折线图

echarts有legend控件可以控制多个折线图之间的切换legend: {data: [财经,娱乐,社会],selectedMode: "single", //单选模式&#xff0c;每次出现一条折线图y: y, //由于需要自适应&#xff0c;此值用变量动态改变right: 10,inactiveColor: "#ADD9FF", //选中…

TellDontAsk的扩展

五年多来&#xff0c;Martin Fowler在他著名的TellDontAsk文章中指出了面向对象编程中的最大问题之一。 在他的著作中&#xff0c;他提醒程序员&#xff0c;他们应该信任自己的对象来为他们执行工作&#xff0c;而不是要求对象提供以后可以使用的数据。 我非常同意这一点&…

网管型光纤收发器产品功能特性详解

飞畅科技生产的网管型光纤收发器机架&#xff0c;吸收了国内外同类产品的优点&#xff0c;产品更具灵活性和实用性。网管光纤收发器采用结构灵活的机架模块化设计&#xff0c;十六槽2U机箱、电源模块及标准的热插拔模块组成&#xff0c;机箱内置双容错电源及无源背板总线&#…

[渝粤教育] 中国地质大学 大学英语(1) 复习题

《大学英语(1)》模拟题 一.单选题 — ______ is the man near the window? — Oh he is Tom. A. What B. Who C. How — I don’t get up late on Sundays.— _____ do I. A. Neither B. Either C. So — I have got a pain in my chest. — You _____ see the doctor. A. …

使用函数_使用TEXT函数生成中文大写金额

为满足《中华人民共和国票据法》中对中文大写金额的书写要求&#xff0c;可以使用TEXT函数将数字格式转换为中文大写金额。图中A列是小写的金额&#xff0c;需要在B列使用公式将其转换为中文大写金额。生成中文大写金额在B2单元格中输入以下公式&#xff0c;向下复制到B6单元格…

[渝粤教育] 中国地质大学 C语言程序设计(新) 复习题

《C语言程序设计》模拟题 一、单项选择题 1.下面程序运行的结果是 void ss(char *schar t) { while(*s) { if(*s t) *st-‘a’’A’; s; } } void main() { char str1[100]”abcddfefdbd”c’d’; ss(str1c); printf("%s\n"str1); } A.ABCDDFEFDBD B.abcDDfefDbD C.a…

简要分析电话光端机的常见问题

关于电话光端机&#xff0c;其实我们已经了解过许多&#xff0c;而许多朋友对光端机还是存有许多疑问。接下来飞畅科技的小编就来为大家详细介绍下电话光端机常见问题有哪些&#xff1f;感兴趣的朋友就赶紧跟着小编一起来看看吧&#xff01; 电话光端机常见问题有哪些&#xf…

[渝粤教育] 中国地质大学 Windows程序设计 复习题 (2)

《Windows程序设计》模拟题 一单选题 1.所有的Windows应用程序都是由()驱动的. A.事件 B.消息 C.命令 D.菜单 2.一般应用程序不会派生自己的()类. A.主框架 B.视图 C.菜单 D.文档 3.MessageBox不能完成()功能. A.接收用户输入 B.显示消息 C.改变对话框标题 D.显示问号图标 4…

java期末考试试卷及答案文库_JAVA期末考试试题及答案.docx

x[j1]){ wx[j]; x[j]x[j1]; x[j1]w; }/* if(i1||i2) ShowArray(x); if(i2) break; */}}public static void ShowArray(int b[]){for(int i0; iy; System.out.println("x>y"flag); flagz>w; System.out.println("z>w"flag);}}四、问答题&#xff1…

nashorn预编译_Java 8:在新的Nashorn JS引擎中编译Lambda表达式

nashorn预编译在最近的一篇文章中&#xff0c;我了解了Java 8和Scala如何实现Lambda表达式。 众所周知&#xff0c;Java 8不仅引入了对Javac编译器的改进&#xff0c;而且还引入了全新的解决方案-Nashorn。 这个新引擎旨在替代Java现有JavaScript解释器Rhino。 这为我们带来了…

光端机各种类型的接口介绍

光端机的接口类型还是比较多的&#xff0c;常见的物理接口类型有BNC接口、光纤接口、RJ-45接口、RS-232接口、RJ-11接口。那么&#xff0c;你对这五种典型的物理接口类型是否有所了解呢&#xff1f;接下来就由飞畅科技的小编一起来详细了解下吧&#xff01; 光端机的典型物理接…

[渝粤教育] 中国地质大学 事故应急救援 复习题

《事故应急救援》模拟题 一单选题 1.()是城市的整体预案从总体上阐述城市的应急方针政策应急组织机构及响应的职责应急行动的思路. A.综合预案 B.专项预案 C.总体预案 D.现场预案 2.()是在专项预案的基础上根据具体情况需要而编制的. A.综合预案 B.专项预案 C.现场预案 D.应急…

微服务升级优点_微服务–——定义, 原则 和 优点

微服务是业界最新的流行语&#xff0c;似乎每个人都在以这样或那样的方式谈论它。让我们理解一下什么是微服务&#xff1f;通过这篇教程我们将理解微服务的定义&#xff0c;概念以及微服务的原理。微服务的定义如今&#xff0c;微服务是SOA(面向服务的架构)之后越来越流行的架构…

[渝粤教育] 中国地质大学 企业文化建设与管理 复习题

《企业文化建设与管理》模拟题 一单选题 1.组织文化包括 A.物质文化&#xff0c;社会文化&#xff0c;精神文化 B.物质文化&#xff0c;精神文化&#xff0c;政治文化 C.物质文化&#xff0c;行为文化&#xff0c;制度文化 D.物质文化&#xff0c;社会文化&#xff0c;政治文化…

五金反引号

五种琴弦 从Java 1.0开始&#xff0c;我们就有了字符串文字"like this" 。 我们还想要其他什么字符串&#xff1f; 其他编程语言为我们提供&#xff1a; 表达式插值&#xff1a; s"I am ${age - 10} years old." 插值格式&#xff1a; f"Price: $pr…

多功能视频光端机_多业务光端机的功能特性

视频光端机&#xff0c;就是把1到多路的模拟视频信号通过各种编码转换成光信号通过光纤介质来传输的设备&#xff0c;由于视频信号转换成光信号的过程中会通过模拟转换和数字转换两种技术&#xff0c;所以视频光端机又分为模拟光端机和数字光端机。光端机原理就是把信号调制到光…