jenkins编译java_在Window上使用Jenkins自动发布Java工件
jenkins編譯java
這篇文章將展示如何使用Jenkins Continuous Integration自動執(zhí)行Java Web應(yīng)用程序(使用MYSQL DB和基于Hibernate ORM在基于REST的Jersey2 Spring環(huán)境中開發(fā)的學(xué)生申請應(yīng)用程序)的發(fā)布過程-上載發(fā)布工件到發(fā)布存儲庫。 如上一篇文章《在Windows上使用Jenkins自動部署和上傳快照J(rèn)ava工件》中所述,只有在將快照工件上載到快照存儲庫中之后,才能運(yùn)行使用本文配置的作業(yè)。 鏈接中的“ 使用Jersey REST和Spring一起構(gòu)建Java Web應(yīng)用程序”給出的更早的文章對實(shí)際應(yīng)用程序的細(xì)節(jié)進(jìn)行了說明。
1.為Github生成SSH密鑰(無密碼)
Jenkins不支持SSH密鑰的密碼短語,因此會為Gihub帳戶生成SSH密鑰而沒有密碼短語。 請按照“ 生成SSH密鑰”下給出的說明進(jìn)行操作,生成不包含密碼的SSH密鑰 ,然后上傳到Github帳戶。
2.強(qiáng)制Jenkins使用SSH密鑰以用戶身份運(yùn)行
在Windows上,Jenkins使用其運(yùn)行用戶身份的SSH密鑰,該密鑰位于C:\ Users <用戶名> .ssh下。 因此,Jenkins必須以具有“用戶名”的用戶身份運(yùn)行。
在命令提示符下鍵入“ services.msc”以打開“服務(wù)管理”。 右鍵單擊Jenkins服務(wù),然后選擇“屬性”。
在“ Jenkins屬性”窗口中,導(dǎo)航到“登錄”選項(xiàng)卡。 選擇以“此帳戶”身份登錄,輸入帳戶的詳細(xì)信息(使用“瀏覽”選項(xiàng)來選擇/檢查帳戶的名稱),然后單擊“確定”。 帳戶憑據(jù)通常將與Windows的登錄帳戶匹配,如下面的快照所示。
保存更改后,通過右鍵單擊Jenkins服務(wù)并從“服務(wù)管理”重新啟動Jenkins服務(wù),然后選擇“重新啟動”,如下所示
3.安裝插件
在Jenkins儀表板上,導(dǎo)航到Manage Jenkins –> Manage Plugins,如下面的快照所示。
安裝以下插件,然后重新啟動Jenkins,以使更改生效。
- Jenkins發(fā)行插件(用于Maven發(fā)行)
4.配置系統(tǒng)
在Jenkins儀表板上,導(dǎo)航到Manage Jenkins –> Configure System,如下快照所示。
進(jìn)入“ Maven版本插件”部分。 啟用Nexus-Pro支持,輸入Nexus URL,Nexus用戶憑據(jù)并保存更改。
5.創(chuàng)建一個新的詹金斯工作
在Jenkins儀表板上,單擊“新作業(yè)”以創(chuàng)建新作業(yè)。 輸入作業(yè)的名稱,然后選擇“ Build a maven2 / 3 project”作為選項(xiàng),然后單擊OK,如下所示。
在“新作業(yè)配置”屏幕上,進(jìn)入“源代碼管理”部分,并為項(xiàng)目指定Git存儲庫URL,如下所示。 在“其他行為”部分,單擊“添加”,然后選擇“簽出到特定的本地分支”。 輸入分支名稱為master,然后保存更改。
進(jìn)入“構(gòu)建環(huán)境”部分,啟用“ Maven Release Build”選項(xiàng)并輸入發(fā)布目標(biāo)。
進(jìn)入“構(gòu)建”部分,輸入構(gòu)建快照的maven目標(biāo),如下所示,然后保存更改。
進(jìn)入“構(gòu)建設(shè)置”部分。 選擇“電子郵件通知”選項(xiàng),然后輸入電子郵件收件人的值,如下所示。 保存更改。
6.配置settings.xml
為了將構(gòu)建的Maven工件上傳到工件服務(wù)器,請使用相同的參數(shù)配置C:\ Program Files(x86)\ Jenkins \ tools \ hudson.tasks.Maven_MavenInstallation \ Maven_3.1 \ conf文件夾中的Jenkins settings.xml。如在系統(tǒng)上的Maven安裝的默認(rèn)settings.xml(通常在Windows計(jì)算機(jī)的C:\ Program Files \ Apache Software Foundation \ apache-maven-3.1.0 \ conf下找到)中所找到的。
通常,需要在Maven版本的settings.xml中使用httpHeaders配置用于登臺存儲庫的服務(wù)器部分。
<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簽名配置一個配置文件部分,有關(guān)如何使用Maven生成PGP簽名的詳細(xì)信息,請參見如何在如何使用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部分下的以下插件來配置項(xiàng)目的pom.xml文件。
- Maven執(zhí)行器插件
- Maven發(fā)布插件
使用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中添加一個分發(fā)管理部分,以指定快照和登臺存儲庫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(或相應(yīng)的Job名稱)下的“立即構(gòu)建”,以根據(jù)配置構(gòu)建項(xiàng)目。
控制臺輸出包含有關(guān)配置已啟動哪些步驟以及整個構(gòu)建結(jié)果的詳細(xì)日志。 驗(yàn)證構(gòu)建成功。
9.執(zhí)行Maven發(fā)布
一旦構(gòu)建成功并將快照上傳到快照存儲庫,請單擊Jenkins –>上載REST發(fā)行工件(或相應(yīng)的作業(yè)名稱)下的“執(zhí)行Maven發(fā)行”以開始Maven發(fā)行過程。
驗(yàn)證發(fā)行版本和下一個開發(fā)版本是否正確。 啟用“指定自定義SCM注釋前綴”以輸入自定義SCM注釋。 啟用“指定自定義SCM標(biāo)簽”以輸入自定義SCM標(biāo)簽。 單擊Schedule Maven Release Build。
一旦發(fā)布過程成功,登臺存儲庫將與發(fā)布工件一起上載。
因此,只需通過單擊Jenkins的一個按鈕,就可以自動完成將工件向暫存庫進(jìn)行正式發(fā)布以及觸發(fā)向收件人發(fā)送電子郵件的整個過程。 然后可以通過關(guān)閉(如果仍處于打開狀態(tài))和發(fā)布步驟來使用臨時(shí)存儲庫,以完成對工件的升級。
翻譯自: https://www.javacodegeeks.com/2014/02/automating-the-release-of-java-artifacts-using-jenkins-on-window.html
jenkins編譯java
總結(jié)
以上是生活随笔為你收集整理的jenkins编译java_在Window上使用Jenkins自动发布Java工件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑开不了机了电脑开不了机了,主板上亮红
- 下一篇: scala集合转java_Java,Sc