一.環(huán)境搭建
1.Jenkins 安裝
(1)首先安裝JDK 最低版本8.0
????命令:yum -y install java-1.8.0-openjdk-devel
????驗(yàn)證:java -version
(2)通過(guò)yum命令安裝Jenkins
? ? ? ? 詳見(jiàn):https://pkg.jenkins.io/redhat/
????1)sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
????2)sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
? ? 3)sudo yum -y install jenkins
2.安裝插件
?1)cd 到需要下載的目錄,下載gradle
????# wget https://services.gradle.org/distributions/gradle-6.1.1-all.zip
?2)解壓gradle
? ??# unzip gradle-6.1.1-all.zip
3)cd 到需要下載的目錄盅粪,先去下載Android sdk,http://tools.android-studio.org/index.php/sdk,上傳到目錄下解壓
? ? #?tar -zxvf android-sdk_r24.4.1-linux.tgz
4)gradle 和android sdk 配置變量
? ? 打開(kāi)系統(tǒng)管理 - 系統(tǒng)配置,找到全局屬性茂嗓,勾選環(huán)境變量颖榜,配置信息如下圖
????配置Android sdk 和 gradle 環(huán)境變量
????# cd /etc/profile.d/
? ? # vim android.sh
? ? 編輯
????export ANDROID_HOME="/usr/local/android-sdk-linux"
????export GRADLE_HOME="/usr/local/gradle-6.1.1"
????export PATH="$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools:$GRADLE_HOME/bin:$PATH"
? ? 進(jìn)入進(jìn)入系統(tǒng)設(shè)置 - 全局工具配置,配置gradle JDK以及git
5)git 插件
? ? linux 安裝git
? ?#?yum -y install git?
? ? 進(jìn)入系統(tǒng)設(shè)置 - 插件管理属韧,輸入git parameter,下載插件
? ? 進(jìn)入Android 項(xiàng)目設(shè)置蛤吓,參數(shù)化構(gòu)建過(guò)程新建$BRANCH
源碼管理宵喂,配置倉(cāng)庫(kù)地址
3.Android 參數(shù)構(gòu)建
? ? 應(yīng)公司要求,需要?jiǎng)討B(tài)打包的功能有:替換logo会傲,應(yīng)用名稱锅棕,公司官網(wǎng),公司名稱淌山,啟動(dòng)頁(yè)裸燎,公司logo等,
? ? 在Android 項(xiàng)目gradle.properties 文件添加配置泼疑,我們使用gradle打包顺少,這里配置參數(shù)將被賦值。注意王浴,gradle配置脆炎,一定要勾選Pass all job parameters as System properties,我在這里卡了很久氓辣,一直參數(shù)沒(méi)法讀取秒裕。
? ? 配置參數(shù)如下:
3.執(zhí)行shell,替換圖片
cd ${WORKSPACE}
# 1. RCE應(yīng)用logo钞啸,圖片為png格式
rce_ic_logo_file="rce_ic_logo.png"
# 2. 通知欄小圖標(biāo)几蜻,圖片為png格式
notification_small_icon_file="notification_small_icon.png"
# 3. 公司logo,圖片為png格式
rce_ic_company_logo_file="rce_ic_company_logo.png"
# 4. 啟動(dòng)頁(yè)体斩,圖片為png格式
rce_splash_bg_file="rce_splash_bg.png"
# 上傳的圖標(biāo)會(huì)放在當(dāng)前Jenkins項(xiàng)目的根目錄梭稚,下面判斷$iconFile是否存在
if [ -f "$rce_ic_logo_file" ]; then
? #分別替換下列資源
? #1. RCE應(yīng)用logo,圖片為png格式? ? rcekit/src/main/res/drawable-xhdpi
? rce_ic_logo_path_base_xh="${WORKSPACE}/rcebase/src/main/res/drawable-xhdpi"
? rce_ic_logo_path_image_xh="${WORKSPACE}/imageeditor/src/main/res/drawable-xhdpi"
? rce_ic_logo_path_mip_hdpi="${WORKSPACE}/rcekit/src/main/res/mipmap-hdpi"
? rce_ic_logo_path_mip_mdpi="${WORKSPACE}/rcekit/src/main/res/mipmap-mdpi"
? rce_ic_logo_path_mip_xhdpi="${WORKSPACE}/rcekit/src/main/res/mipmap-xhdpi"
? rce_ic_logo_path_mip_xxhdpi="${WORKSPACE}/rcekit/src/main/res/mipmap-xxhdpi"
? rce_ic_logo_path_mip_xxxhdpi="${WORKSPACE}/rcekit/src/main/res/mipmap-xxxhdpi"
? #convert -resize 512x512 rce_ic_logo.png rce_ic_logo.png
? cp rce_ic_logo.png ${rce_ic_logo_path_mip_xxxhdpi}
? #convert -resize 384x384 rce_ic_logo.png rce_ic_logo.png
? cp rce_ic_logo.png ${rce_ic_logo_path_mip_xxhdpi}
? #convert -resize 256x256 rce_ic_logo.png rce_ic_logo.png
? cp rce_ic_logo.png ${rce_ic_logo_path_mip_xhdpi}
? #convert -resize 192x192 rce_ic_logo.png rce_ic_logo.png
? cp rce_ic_logo.png ${rce_ic_logo_path_mip_hdpi}
? #convert -resize 192x192 rce_ic_logo.png rce_ic_logo.png
? cp rce_ic_logo.png ${rce_ic_logo_path_mip_mdpi}
? #convert -resize 192x192 rce_ic_logo.png rce_ic_logo.png
? cp rce_ic_logo.png ${rce_ic_logo_path_base_xh}
? #convert -resize 192x192 rce_ic_logo.png rce_ic_logo.png
? cp rce_ic_logo.png ${rce_ic_logo_path_image_xh}
fi
if [ -f "$notification_small_icon_file" ]; then
? notification_small_icon_path="${WORKSPACE}/rcekit/src/main/res/drawable-xhdpi"
? #convert -resize 192x192 notification_small_icon.png notification_small_icon.png
? mv notification_small_icon.png ${notification_small_icon_path}
fi
if [ -f "$rce_ic_company_logo_file" ]; then
? rce_ic_company_logo_path="${WORKSPACE}/rcekit/src/main/res/drawable-xxhdpi"
? mv rce_ic_company_logo.png ${rce_ic_company_logo_path}
fi
if [ -f "$rce_splash_bg_file" ]; then
? rce_splash_bg_path="${WORKSPACE}/rcekit/src/main/res/drawable-xxhdpi"
? mv rce_splash_bg.png ${rce_splash_bg_path}
fi
3.執(zhí)行shell絮吵,將生成的apk發(fā)不到Tomcat上弧烤,供下載
????1)安裝Tomcat,這里就自行安裝
????2)我是將生成的apk直接移動(dòng)到tomcat 的webapp download 目錄下蹬敲,然后重啟tomcat
? ? ? ? ?執(zhí)行shell
cd ${WORKSPACE}/rce/build/outputs/apk/release/
cp ${WORKSPACE}/rce/build/outputs/apk/release/*.apk /usr/local/tomcat/apache-tomcat-9.0.22/webapps/download
cd /usr/local/tomcat/apache-tomcat-9.0.22/bin
./startup.sh