編輯:關於Android編程
我們反過來想一想,程序員小李的工作有意義嗎,首先肯定耽誤它手頭的工作吧,對於公司來說程序員的時間就是金錢,還有如果哪一天程序員小李腦子發熱了,忘記改debug參數了,忘記改versioncode值了,這些後果誰來承擔呢?
不要怕,下面我們就來認識下今天得主人公,Jenkins+Gradle;
Jenkins是一個開源項目,提供了一種易於使用的持續集成系統,使開發者從繁雜的集成中解脫出來,專注於更為重要的業務邏輯實現上。同時Jenkins能實現監控集成中存在的錯誤,提供詳細的日志文件和提醒功能,還能用圖表的形式形象地展示項目構建的趨勢和穩定性。Jenkins的前身是Hudson,是一個可擴展的持續集成引擎。
http://mirrors.jenkins-ci.org/war/latest/jenkins.war
將下載的jenkins.war包直接放到tomcat下的webapps目錄下,然後啟動tomcat即可安裝完成,接下來登錄:http://localhost:8080/jenkins就能進入jenkins系統頁面,在此不說tomcat如何配置環境變量。
當你進入jenkins系統管理頁面,會出現如圖提示,可修改tomcat的server.xml配置,在Connector 標簽添加上URIEncoding=”UTF-8”。


點擊“系統管理” –> “Configure Global Security”

首先先添加一個administer用戶作為超級管理員,全部權限都打勾,如圖admin用戶。保存,重啟。用剛剛添加的超級管理員作為賬號名注冊一個賬號,即可擁有超級管理員權限。

JDK、Gradle如果系統環境變量配置好的話就不用再配置,用默認的就行。
點擊“系統管理”–> “系統設置”

點擊“系統管理”–> “管理插件” –> “可選插件” 選中Gradle plugin插件安裝重啟即可。





RepositZ喎?/kf/ware/vc/" target="_blank" class="keylink">vcnkgVVJMo7ogc3ZuILXEILXEtdjWt6OsyOe5+8rkyOu1xLXY1rfQ6NKqyuTI69PDu6fD+7rNw9zC66OsvavX1LavzPiz9rrsyau1xMzhyr7Qxc+iLLXju/cmcmRxdW87ZW50ZXIgY3JlZGVudGlhbCZyZHF1bzsgvfjI68no1sNzdm4g08O7p8P7oaM8L3A+DQo8ZGl2Pteio7og1eLA77XEc3ZutdjWt7K7xNzKudPD0/LD+6Os0qrTw8q1vMpJUKOs0qqyu8i7u+HSu9axytrIqLK7zai5/aO7PC9kaXY+DQo8ZGl2PiZuYnNwOzwvZGl2Pg0KPGgyPtGh1PEmbGRxdW87ubm9qLSlt6LG9yZyZHF1bzs8L2gyPg0KPGRpdj4mbmJzcDs8L2Rpdj4NCjxkaXY+wLS1vcHL1eLSu7K9o6zKtcr0srvS16Os1eLA777NysfO0sPHtcTM7MzDo6y+zcTczeqzySZsZHF1bzvDv7Wxc3Zuyc/P7sS/sOaxvrj8uMS686OsztK+zdfUtq+5ub2oo6zIu7rzxdzSu7TOtaXUqrLiytSjrLWxyLvSsr/J0tS4xLPJw7/M7NK7tM678tXfw7/Qocqx0ru0zsC0vOC/2HN2bsnPz+7Ev7Dmsb64/LjEx+m/9qGjJnJkcXVvOzwvZGl2Pg0KPGRpdj4mbmJzcDs8L2Rpdj4NCjxwPjxpbWcgYWx0PQ=="這裡寫圖片描述" src="/uploadfile/Collfiles/20160525/20160525091706498.jpg" title="\" />
Build periodically:周期進行項目構建(它不關心源碼是否發生變化) Poll SCM:定時檢查源碼變更(根據SCM軟件的版本號),如果有更新就checkout最新code下來,然後執行構建動作,這裡我選擇它。



Switches :即gradle 後面所接的命令。上面相當於執行gradle clean build命令。


Gradle 是以 Groovy 語言為基礎,面向Java應用為主.基於DSL(領域特定語言)語法的自動化構建工具。現在已是android的默認構建工具了。
從官網下載gradle-**.zip解壓到本地,設置環境變量GRADLE_HOME,將%GRADLE_HOME%\bin加入到Path中即可。
從官網下載gradle-1.0-all.zip解壓到本地,設置環境變量GRADLE_HOME,將%GRADLE_HOME%\bin加入到Path中即可。
進入cmd,輸入 gradle -version看到如下界面,說明配置成功

apply plugin: 'com.android.application'
def releaseTime() {
return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("GMT+08:00"))
}
android {
compileSdkVersion 23
buildToolsVersion '23.0.3'
dataBinding {
enabled = true
}
defaultConfig {
applicationId "com.walid.mizar"
testInstrumentationRunner "com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner"
/* Android 4.0 */
minSdkVersion 14
targetSdkVersion 23
multiDexEnabled true
versionCode 20
versionName "1.3.0"
}
lintOptions {
checkReleaseBuilds false
abortOnError false
}
packagingOptions {
exclude 'AndroidManifest.xml'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'pom.properties'
}
signingConfigs {
release {
storeFile file('xiaobai.keystore')
storePassword 'xiaobai0824'
keyAlias 'xiaobai'
keyPassword 'xiaobai0824'
}
}
buildTypes {
release {
signingConfig signingConfigs.release
jniDebuggable false
debuggable false
//代碼混淆開關,一定要注意現在已經使用minifyEnabled代替runProguard了
minifyEnabled false
shrinkResources true
zipAlignEnabled true
shrinkResources false
proguardFile 'proguard-project.txt'
applicationVariants.all { variant ->
variant.outputs.each { output ->
def apk = output.outputFile
if (apk != null && apk.name.endsWith('.apk')) {
def fileName = "kangxiaobai_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
output.outputFile = new File(apk.parent + "/package", fileName)
}
}
}
}
}
// 友盟多渠道打包
productFlavors {
Official {}
SanLiuLing {}
HuaWei {}
Baidu {}
NineOneMarket {}
AnzhuoShiChang {}
YingYongBao {}
WanDouJia {}
Xiaomi {}
MeiZu {}
LeShangdian {}
Anzhi {}
TaoBao {}
ZhongYiDong {}
Others {}
}
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
dexOptions {
incremental false
preDexLibraries = false
jumboMode = false
javaMaxHeapSize "4g"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
Could not load Logmanager "org.apache.juli.ClassLoaderLogManager"
java.lang.ClassNotFoundException: org.apache.juli.ClassLoaderLogManager
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
原因 :
Jenkins的Gradle Plugin拷貝所有Tomcat的環境變量到Gradle的JVM中,因此Gradle在使用JAVA_OPTS作為合法參數時可能機會有下面這些問題
解決辦法:
打開Tomcat bin目錄下catalina.bat,注銷下面代碼:
Failed to notify ProjectEvaluationListener.afterEvaluate(), but primary configuration failure takes precedence. java.lang.RuntimeException: SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
原因:
沒有找到ANDROID_HOME的環境變量
解決辦法:
1.Go to Jenkins > Manage Jenkins > Configure System
2.Check “Environment variables”
3.add name: ANDROID_HOME, value -> your android sdk dir
4.click “add”
5.SCROLL DOWN CLICK SAVE
C:\Users\admin\.jenkins\secrets\initialAdminPassword
Android開發應用中Broadcast Receiver組件詳解
BroadcastReceiver(廣播接收器)是Android中的四大組件之一。下面就具體介紹一下Broadcast Receiver組件的用法。下面是Android
android---UI---RecyclerView實現瀑布流(2)
前言:前面介紹了瀑布流的基本實現,實際上瀑布流還有一些事件需要監聽。比如點擊事件,下拉和上拉事件。這裡接著上次的 android—UI—Recyc
Android 02 Started Service--之被啟動的服務
正文 1 Started Service介紹 Started Service,即被啟動的服務。它是2種常見服務之一,另一種是Bo
Android Studio導入Eclipse項目的兩種方法
Android Studio導入Eclipse項目有兩種方法,一種是直接把Eclipse項目導入Android Studio,另一種是在Eclipse項目裡面進行轉換,然