config.xml:jenkins的全局權限配置以及其餘配置文件php
credentials.xml:jenkins的憑據配置文件,此處爲git服務用戶憑據配置文件;java
jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin.xml:jenkins的publish over ssh服務器配置文件; git
jobs目錄:jenkins jobs配置目錄,包含job權限、git地址、打包方式等配置;web
users目錄:jenkins users用戶目錄,包含jenkins的用戶配置目錄。服務器
此處使用war包進行升級,部署目錄爲/usr/local/jenkins,啓動命令以下: nohup java -Xms4096M -Xmx4096M -Dcom.sun.akuma.Daemon=daemonized -Djav.awt.headless=true -DJENKINS_HOME=/data/jenkins-2.121.2 -jar /usr/local/jenkins-2.121.2/jenkins.war \ --logfile=/usr/local/jenkins-2.121.2/jenkins.log --webroot=/usr/local/jenkins-2.121.2/war --daemon --httpPort=8081 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20 &
git parameter插件:爲了方便開發參數化構建,指定分支進行構建。
phing插件:爲了實現php代碼打包。 publish over ssh插件:爲了實現ssh遠程分發代碼包,同時執行解壓等相關操做。 Extended Choice Parameter Plug-In插件:能夠實現配置可選擇的參數,同時將該參數做爲全局變量進行使用。
Dynamic Extended Choice Parameter插件:設置動態參數
五、問題解決less
安裝完成jdk、gradle以後,在命令行輸出$JAVA_HOME正確,可是在打包時候報錯以下:ssh
ERROR: JAVA_HOME is set to an invalid directory: /usr/local/jdk1.8.0_152 Please set the JAVA_HOME variable in your environment to match the location of your Java installation.
解決方案以下:
編輯gradle命令文件,在腳本的#!/usr/bin/env sh行下邊新增一行:JAVA_HOME="/usr/local/java",指明JAVA_HOME目錄。
在將相關文件複製到新的jenkins服務器上,啓動完成以後,在打包項目的時候,發現控制檯輸出報如下錯誤:
ln builds/lastSuccessfulBuild /data/jenkins/jobs/javademo-v1/lastSuccessful failed java.nio.file.DirectoryNotEmptyException: /data/jenkins/jobs/javademo-v1/lastSuccessful at sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:242) at sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:108) at java.nio.file.Files.deleteIfExists(Files.java:1165) at hudson.Util.createSymlink(Util.java:1351) at hudson.model.Run.createSymlink(Run.java:1954) at hudson.model.Run.updateSymlinks(Run.java:1935) at hudson.model.Run.execute(Run.java:1813) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:97) at hudson.model.Executor.run(Executor.java:429) ln builds/lastStableBuild /data/jenkins/jobs/javademo-v1/lastStable failed java.nio.file.DirectoryNotEmptyException: /data/jenkins/jobs/javademo-v1/lastStable at sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:242) at sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:108) at java.nio.file.Files.deleteIfExists(Files.java:1165) at hudson.Util.createSymlink(Util.java:1351) at hudson.model.Run.createSymlink(Run.java:1954) at hudson.model.Run.updateSymlinks(Run.java:1936) at hudson.model.Run.execute(Run.java:1813) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:97) at hudson.model.Executor.run(Executor.java:429)解決方案: 刪除相關jobs目錄下的lastStable、lastSuccessful文件夾,以後在構建時會從新建立軟鏈接。此處假設jenkins數據目錄爲:/data/jenkins。在/data/jenkins/jobs目錄下執行以下命令: find ./ -maxdepth 2 -type d -name "lastSuccessful" -exec rm -rf {} \; find ./ -maxdepth 2 -type d -name "lastStable" -exec rm -rf {} \; 刪除完成,再從新構建,發現報錯消失。