@asce1885
2015-06-20T01:34:02.000000Z
字数 8415
阅读 373
新框架文档
@author:ASCE1885
自动化编译包括本地编译和Jenkins编译两部分,本地编译主要用于开发自己调试使用,Jenkins编译主要用于测试,产品等取包以及跑Monkey使用。
Hyperion公共框架基于Android Studio+Gradle构建,根据功能划分为多个独立的Module,解耦的同时也便于分模块打包。
本地编译脚本文件位于工程根目录下的build_local.sh,该脚本的主要功能有:
build_local.sh文件内容如下:
#!/bin/sh
#使用Gradle编译各个module
#./gradlew clean
./gradlew build --stacktrace --debug
#进入输出目录
cd output
#清空输出目录
rm -rf *
#创建输出子目录
mkdir temp
mkdir debug
mkdir release
#定义hyperion sdk版本号
version="1.0.0"
#定义模块是否打包标识
is_include_hfasynchttp=true
is_include_bitmapfun=true
is_include_hfdbutil=true
is_include_hfeventbus=true
is_include_hfhybrid=true
is_include_hfjson=true
is_include_hflogger=true
is_include_hfutils=true
is_include_hfnativepluginnew=true
is_include_hfengine=true
is_include_hfpush=true
is_include_hfstatistics=true
is_include_hfmessage=true
is_include_hfshare=true
#解压所有debug版本的jar包到temp目录中
cd temp
if $is_include_hfasynchttp; then
jar -xvf ../../hfasynchttp/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_bitmapfun; then
jar -xvf ../../hfbitmapfun/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hfdbutil; then
jar -xvf ../../hfdbutil/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hfeventbus; then
jar -xvf ../../hfeventbus/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hfhybrid; then
jar -xvf ../../hfhybrid/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hfjson; then
jar -xvf ../../hfjson/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hflogger; then
jar -xvf ../../hflogger/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hfutils; then
jar -xvf ../../hfutils/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hfnativepluginnew; then
jar -xvf ../../hfnativepluginnew/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hfengine; then
jar -xvf ../../hfengine/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hfpush; then
jar -xvf ../../hfpush/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hfstatistics; then
jar -xvf ../../hfstatistics/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hfmessage; then
jar -xvf ../../hfmessage/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hfshare; then
jar -xvf ../../hfshare/build/intermediates/bundles/debug/classes.jar
fi
#压缩所有debug版本的class文件到一个独立的jar包中
jar -cvfM AndroidHyperion_${version}_debug.jar .
#拷贝文件
mv AndroidHyperion_${version}_debug.jar ../debug
cp -r ../../hfengine/build/libs ../debug
rm ../debug/libs/ndk-libs.jar
#清空temp目录
rm -rf *
#解压所有release版本的jar包到temp目录中
if $is_include_hfasynchttp; then
jar -xvf ../../hfasynchttp/build/intermediates/bundles/release/classes.jar
fi
if $is_include_bitmapfun; then
jar -xvf ../../hfbitmapfun/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hfdbutil; then
jar -xvf ../../hfdbutil/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hfeventbus; then
jar -xvf ../../hfeventbus/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hfhybrid; then
jar -xvf ../../hfhybrid/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hfjson; then
jar -xvf ../../hfjson/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hflogger; then
jar -xvf ../../hflogger/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hfutils; then
jar -xvf ../../hfutils/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hfnativepluginnew; then
jar -xvf ../../hfnativepluginnew/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hfengine; then
jar -xvf ../../hfengine/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hfpush; then
jar -xvf ../../hfpush/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hfstatistics; then
jar -xvf ../../hfstatistics/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hfmessage; then
jar -xvf ../../hfmessage/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hfshare; then
jar -xvf ../../hfshare/build/intermediates/bundles/release/classes.jar
fi
#压缩所有release版本的class文件到一个jar包中
jar -cvfM AndroidHyperion_${version}_release.jar .
#拷贝文件
mv AndroidHyperion_${version}_release.jar ../release
cp -r ../../hfengine/build/libs ../release
rm ../release/libs/ndk-libs.jar
#删除temp目录
cd ..
rm -rf temp
Jenkins编译脚本文件位于工程根目录下的build_jenkins.sh,该脚本的主要功能有:
build_jenkins.sh文件内容如下:
#!/bin/sh
./gradlew clean
./gradlew build --stacktrace --debug
#进入输出目录
cd output
#清空输出目录
rm -rf *
#创建输出子目录
mkdir temp
mkdir debug
mkdir release
cd temp
#解压所有release版本的jar包
if $is_include_hfasynchttp; then
jar -xvf ../../hfasynchttp/build/intermediates/bundles/release/classes.jar
fi
if $is_include_bitmapfun; then
jar -xvf ../../hfbitmapfun/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hfdbutil; then
jar -xvf ../../hfdbutil/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hfeventbus; then
jar -xvf ../../hfeventbus/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hfhybrid; then
jar -xvf ../../hfhybrid/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hfjson; then
jar -xvf ../../hfjson/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hflogger; then
jar -xvf ../../hflogger/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hfutils; then
jar -xvf ../../hfutils/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hfnativepluginnew; then
jar -xvf ../../hfnativepluginnew/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hfengine; then
jar -xvf ../../hfengine/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hfpush; then
jar -xvf ../../hfpush/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hfstatistics; then
jar -xvf ../../hfstatistics/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hfmessage; then
jar -xvf ../../hfmessage/build/intermediates/bundles/release/classes.jar
fi
if $is_include_hfshare; then
jar -xvf ../../hfshare/build/intermediates/bundles/release/classes.jar
fi
#压缩所有release版本的class文件到一个jar包中
jar -cvfM AndroidHyperion_${version}_release.jar .
#移动生成的jar包到release目录
mv AndroidHyperion_${version}_release.jar ../release
#清空temp目录
rm -rf *
#解压所有debug版本的jar包
if $is_include_hfasynchttp; then
jar -xvf ../../hfasynchttp/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_bitmapfun; then
jar -xvf ../../hfbitmapfun/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hfdbutil; then
jar -xvf ../../hfdbutil/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hfeventbus; then
jar -xvf ../../hfeventbus/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hfhybrid; then
jar -xvf ../../hfhybrid/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hfjson; then
jar -xvf ../../hfjson/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hflogger; then
jar -xvf ../../hflogger/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hfutils; then
jar -xvf ../../hfutils/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hfnativepluginnew; then
jar -xvf ../../hfnativepluginnew/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hfengine; then
jar -xvf ../../hfengine/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hfpush; then
jar -xvf ../../hfpush/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hfstatistics; then
jar -xvf ../../hfstatistics/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hfmessage; then
jar -xvf ../../hfmessage/build/intermediates/bundles/debug/classes.jar
fi
if $is_include_hfshare; then
jar -xvf ../../hfshare/build/intermediates/bundles/debug/classes.jar
fi
#压缩所有release版本的class文件到一个jar包中
jar -cvfM AndroidHyperion_${version}_debug.jar .
#移动生成的jar包到debug目录
mv AndroidHyperion_${version}_debug.jar ../debug
#删除temp目录
cd ..
rm -rf temp
类型 | 名称 | 默认值 | 描述 |
---|---|---|---|
String | version | 1.0.0 | Hyperion sdk版本号 |
Boolean | is_include_hfasynchttp | true | 是否打包hfasynchttp |
Boolean | is_include_bitmapfun | true | 是否打包hfbitmapfun |
Boolean | is_include_hfeventbus | true | 是否打包hfeventbus |
Boolean | is_include_hfhybrid | true | 是否打包hfhybrid |
Boolean | is_include_hfjson | true | 是否打包hfjson |
Boolean | is_include_hflogger | true | 是否打包hflogger |
Boolean | is_include_hfutils | true | 是否打包hfutils |
Boolean | is_include_hfnativepluginnew | true | 是否打包hfnativepluginnew |
Boolean | is_include_hfpush | true | 是否打包hfpush |
Boolean | is_include_hfstatistics | true | 是否打包hfstatistics |
Boolean | is_include_hfdbutil | true | 是否打包hfdbutil |
Boolean | is_include_hfengine | true | 是否打包hfengine |
Boolean | is_include_hfmessage | true | 是否打包hfmessage |
Boolean | is_include_hfshare | true | 是否打包hfshare |
Boolean | is_include_hfdatabase | true | 是否打包hfdatabase |
Boolean | is_include_hfendecrypte | true | 是否打包hfendecrypte |