Jenkins 是一個開源項目,提供了一種易於使用的持續集成系統,使開發者從繁雜的集成中解脫出來,專一於更爲重要的業務邏輯實現上。同時 Jenkins 能實施監控集成中存在的錯誤,提供詳細的日誌文件和提醒功能,還能用圖表的形式形象地展現項目構建的趨勢和穩定性。Jenkins 的前身是Hudson是一個可擴展的持續集成引擎。 java
下載地址:http://mirrors.jenkins-ci.org/war/latest/jenkins.war。將下載的jenkins.war包直接放到tomcat下的webapps目錄,啓動tomcat便可安裝完成。
android
編碼問題:進入jenkins系統管理頁面,會出現如圖提示,可修改tomcat的server.xml配置,在Connector 標籤添加上 URIEncoding="UTF-8" 。 web
安全配置:如圖 apache
首先的先添加一個administer用戶做爲超級管理員,所有權限都打勾,如圖boluo用戶。保存,重啓。用剛剛添加的超級管理員做爲賬號名註冊一個賬號,便可擁有超級管理員權限。 tomcat
JDK、gradle若是系統環境變量設置的話就不用再設置,用默認的就行。
安全
郵件通知:系統管理>系統設置 如圖 app
系統管理>管理插件>可選插件 選中Jenkins Gradle plugin插件安裝重啓便可。 webapp
安裝慢的話,能夠把插件下載下來,手動上傳插件或設置代理。如圖 maven
點擊新Job,輸入任務名稱選中構建一個自由風格的軟件項目,點擊OK,跳到配置頁面 svn
源碼管理:如圖。
Repository URL: svn 的 的地址,若是輸入的地址須要輸入用戶名和密碼,將自動跳出紅色的提示信息,點擊"enter credential" 進入設置svn 用戶名。
構建觸發器:如圖
Build periodically:週期進行項目構建(它不關心源碼是否發生變化)
Poll SCM:定時檢查源碼變動(根據SCM軟件的版本號),若是有更新就checkout最新code下來,而後執行構建動做。
這裏我選Poll SCM,(H/5 H(9-23) * * *)
第一個參數表明的是分鐘 minute,取值 0~59;
第二個參數表明的是小時 hour,取值 0~23;
第三個參數表明的是天 day,取值 1~31;
第四個參數表明的是月 month,取值 1~12;
最後一個參數表明的是星期 week,取值 0~7,0 和 7 都是表示星期天。
如H/5 * * * * 表示的就是每5分鐘檢查一次源碼變化。
構建:添加Invoke Gradle script,配置如圖
Switches :即gradle 後面所接的命令。上面至關於執行gradle clean build命令。
構建後操做:構建失敗能夠發送郵件通知,如圖
Gradle 是以 Groovy 語言爲基礎,面向Java應用爲主.基於DSL(領域特定語言)語法的自動化構建工具。如今已經是android的默認構建工具了。
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.6'//依賴 } } apply plugin: 'android' dependencies { compile fileTree(dir: 'libs', include: '*.jar')//添加android依賴libs } android { compileSdkVersion 17 buildToolsVersion "17.0.0" //簽名 signingConfigs { myConfig { storeFile file("debug.keystore") storePassword "android" keyAlias "androiddebugkey" keyPassword "android" } } defaultConfig { versionCode 1 versionName getVersionName() minSdkVersion 8 targetSdkVersion 17 } //渠道 productFlavors { google{ } tantai{ } } buildTypes{ release { signingConfig signingConfigs.myConfig runProguard true proguardFile 'proguard.cfg' } } sourceSets { main { manifest { srcFile 'AndroidManifest.xml' } java { srcDir 'src' } res { srcDir 'res' } assets { srcDir 'assets' } resources { srcDir 'src' } aidl { srcDir 'src' } } } } tasks.withType(Compile) { options.encoding = "UTF-8" } //替換AndroidManifest.xml的UMENG_CHANNEL_VALUE字符串爲渠道名稱 android.applicationVariants.all{ variant -> variant.processManifest.doLast{ copy{ from("${buildDir}/manifests"){ include "${variant.dirName}/AndroidManifest.xml" } into("${buildDir}/manifests/$variant.name") filter{ String line -> line.replaceAll("UMENG_CHANNEL_VALUE", "$variant.name") } variant.processResources.manifestFile = file("${buildDir}/manifests/${variant.name}/${variant.dirName}/AndroidManifest.xml") } } }
遇到的問題:tomcat下gradle 構建若是遇到Could not load Logmanager "org.apache.juli.ClassLoaderLogManager"
解決:註釋掉catalina.bat裏面的set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%便可