編輯:關於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
BroadcastReceiver(廣播接收器)是Android中的四大組件之一。下面就具體介紹一下Broadcast Receiver組件的用法。下面是Android
前言:前面介紹了瀑布流的基本實現,實際上瀑布流還有一些事件需要監聽。比如點擊事件,下拉和上拉事件。這裡接著上次的 android—UI—Recyc
正文 1 Started Service介紹 Started Service,即被啟動的服務。它是2種常見服務之一,另一種是Bo
Android Studio導入Eclipse項目有兩種方法,一種是直接把Eclipse項目導入Android Studio,另一種是在Eclipse項目裡面進行轉換,然