之前使用Jenkins一般都是在外網(wǎng)上使用,問題一般都不是很大,但這次內(nèi)容的卻是另一番滋味,因此總結(jié)了所遇到的一些問題!
一、離線安裝Jenkins插件
對于Jenkins插件外網(wǎng)使用時直接下載更新即可,但內(nèi)網(wǎng)使用卻是麻煩的多。
1.下載插件包(http://updates.jenkins-ci.org/download/plugins/
),本地上傳(系統(tǒng)管理–管理插件–高級–上傳插件),這種方式較為麻煩,離線包之間依賴較多,需不斷的上傳驗證。

2.外網(wǎng)電腦安裝Jenkins并安裝所需要的插件(系統(tǒng)管理–管理插件–可選插件–勾選安裝),拷貝所有插件到內(nèi)網(wǎng)電腦上對應的目錄,重啟Jenkins。這也是這次我所使用的方法,感覺比下載離線包再上傳安裝方便的多。

對于Jenkins重啟,我這里是直接通過重啟Jenkins服務。

二、構建失敗
1.mergeDebugResources FAILED

解決方法:
(1)添加系統(tǒng)變量GRADLE_USER_HOME;

(2)Jenkins項目gradle配置時勾選Force GRADLE_USER_HOME to use workspace。

2.lint FAILED

解決方法:提示已很明顯,在每個Module的build.gradle文件中配置。
lintOptions {
abortOnError false
}
3.mockableAndroidJar FAILED

這里出現(xiàn)的原因主要是修改了android.jar包里面的內(nèi)容所導致的,解決方法:在項目最外層build.gradle文件中設置
allprojects {
gradle.taskGraph.whenReady {
tasks.each {task ->
if(task.name == 'mockableAndroidJar'){
task.enabled = false
}
}
}
}
4.Failed to notify project evaluation listener

我這里出現(xiàn)原因是部分module指定了jdk版本,部分沒有,所以解決方法即在每個module中均指定jdk版本。
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
三、指定Module編譯
當項目中存在多個module(多個應用)時,指定module進行構建(在項目配置gradle內(nèi)設置)。

總結(jié):這里只是對這次設置過程中遇到的一些坑做一個簡單記錄,還有其他一些關鍵點可以自行查詢嘗試(如:參數(shù)化構建、郵件發(fā)送、權限管理等)。