在Window上使用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屬性”窗口中,導航到“登錄”選項卡。 選擇以“此帳戶”身份登錄,輸入該帳戶的詳細信息(使用“瀏覽”選項來選擇/檢查該帳戶的名稱),然后單擊“確定”。 帳戶憑據通常將與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發布插件
使用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單擊按鈕,就可以自動完成將工件向暫存庫進行正式發布以及觸發向收件人發送電子郵件的整個過程。 然后可以通過關閉(如果它仍處于打開狀態)和發布步驟來使用登臺存儲庫,以完成工件的升級。
翻譯自: https://www.javacodegeeks.com/2014/02/automating-the-release-of-java-artifacts-using-jenkins-on-window.html
總結
以上是生活随笔為你收集整理的在Window上使用Jenkins自动发布Java工件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaSE 7,8:确定特定文件系统支
- 下一篇: (linux的.sh文件)