全陷阱破解:在Linux环境下的Jenkins中持续集成Android工程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了全陷阱破解:在Linux环境下的Jenkins中持续集成Android工程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4977字,纯文字阅读大概需要8分钟。
内容图文
本方案以 RHEL / Centos 64位Linux操作系统为例,因为这是目前最常见的服务器环境。
一、安装Java SDK。
建议,不要使用诸如yum之类的玩意自动安装,因为openJDK之类的东东最终各种幺蛾子跑不起来。老老实的去oracle网站下载至少Java7 64位的最终版本,手动安装之,配置好系统path和JAVA_HOME环境变量。
vim ~/.bash_profile
export JAVA_HOME=<Java安装路径>
PATH=$PATH:$JAVA_HOME/bin
……
二、安装Android SDK管理工具。
思路就是去Google网站上把Linux版本的Android SDK管理工具压缩包搞下来,如果访问不了Google(中国特色你懂的)就上网找IP地址配host之类的方法搞定。
wget https://dl.google.com/android/android-sdk_r23.0.2-linux.tgz
然后就是解压缩配置环境变量啦,最终确保”android”命令在系统中可用就是目的。
编辑 ~/.bash_profile 加入系统路径2枚:
PATH=$PATH:$your_android-sdk-linux/tools
PATH=$PATH:$your_android-sdk-linux/platform-tools
export PATH
64位系统请设置这个环境变量:
export ANDROID_SWT=$your_android-sdk-linux/tools/lib/x86_64
# 如果是32位系统则这样设置:# export ANDROID_SWT=$your_android-sdk-linux/tools/lib/x86
完事后检测一下是否OK,运行命令:
android -h
三、安装Ant为了执行自动编译脚本。
建议老老实实去下载 Apache Ant,注意:android-sdk_r23.0.2 必须要 Ant 1.8 版本以上才行,解压之,并将其bin目录配置到系统执行路径中。过程不再废话~
期间可能会遇到问题:
java.lang.ClassNotFoundException: org.apache.tools.ant.util.regexp.Jdk14RegexpRegexp
这样解决:
sudo yum install ant-apache-regexp
或(Ubuntu系统)
sudo apt-get install ant-optional
四、下载Android SDK。
思路是先查看有哪些版本的SDK,它们的编号如何,然后选择自己需要的下载之;如果全下载的话就太多了,在中国,慢。搞定这些事你会用到如下命令:
# 查看远程所有的SDK
android list sdk --all# 查看本地已安装的SDK
android list target
# 仅仅下载编号为27的SDK,--no-ui 不需要启动图形界面
android update sdk --no-ui --all --filter 27# 下载 platform-tools和android-19
android update sdk --no-ui -u --all --filter platform-tools,android-19# 下载所有的SDK(不建议这样做)
android update sdk --no-ui
五、开始尝试构建工程
Android工程一般没有Ant构建文件build.xml,因此需要在项目根目录运行如下命令测试一下能否生成:
android update project -p .
可能你会遇到如下问题:
Execute failed: java.io.IOException: Cannot run program "/android/sdk/build-tools/android-4.1/aapt": error=2
解决办法:
yum install -y compat-libstdc++-296.i686
yum install -y compat-libstdc++-33.i686
/android/sdk/build-tools/android-4.1/aapt: error while loading shared libraries: libz.so.1: cannot openshared object file: No such fileor directory
解决办法:
yum install -y zlib
/android/sdk/build-tools/android-4.1/aapt: error while loading shared libraries: libstdc++.so.6: cannot openshared object file: No such fileor directory
解决办法:
yum
install
-
y
libstdc
+
+
.
so
.
6
error
while loading shared libraries: libz.so.1: cannot open shared obj
解决办法:
yum install -y zlib.i686
六、设置Jenkins和设置相关环境。
分析代码质量你需要Findbugs。
所以建议你下载 Findbugs 2.0.3,然后解压缩到某个目录就算安装了。再复制 findbugs-ant.jar 到 ANT_HOME/lib 目录。
在“android-sdk/tools/ant”这个目录里创建 findbugs-exclude.xml 这个文件,只是findbugs不要扫描非Java代码,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<FindBugsFilter>
<Match>
<Classname="~.*\.R\$.*"/>
<Bugcode="Nm"/>
</Match>
<Match>
<Classname="~.*\.Manifest\$.*"/>
<Bugcode="Nm"/>
</Match>
</FindBugsFilter>
然后编辑“android-sdk/tools/ant/build.xml”,增加 findbugs 的构建任务:
<taskdefname="findbugs"classname="edu.umd.cs.findbugs.anttask.FindBugsTask"/>
<targetname="findbugs">
<mkdirdir="reports" />
<findbugshome="<你的findbugs安装目录>"output="xml"outputFile="reports/findbugs.xml"excludeFilter="findbugs-exclude.xml">
<auxClasspathpath="${project.target.android.jar}"/>
<auxClasspath>
<filesetdir="libs"includes="*.jar" />
</auxClasspath>
<classlocation="${out.dir}" />
<sourcePathpath="${source.dir}" />
</findbugs>
</target>
官方的标准做法是这样建议的,我觉得太麻烦,供参考吧:
<propertyname="findbugs.home"value="${env.FINDBUGS_HOME}" />
<pathid="findbugs_lib">
<filesetdir="${findbugs.home}/lib/">
<includename="*.jar"/>
</fileset>
</path>
<taskdefname="findbugs"classname="edu.umd.cs.findbugs.anttask.FindBugsTask"classpathref="findbugs_lib" />
<targetname="findbugs"depends="-compile">
<mkdirdir="reports" />
<findbugshome="${findbugs.home}"output="html"outputFile="reports/${ant.project.name}_findbugs.html">
<auxClasspathpath="${android.jar}" />
<auxClasspath>
<filesetdir="${other-dependency-lib-dir}/libs"includes="*.jar" />
</auxClasspath>
<classlocation="${out.dir}" />
<sourcePathpath="${source.dir}" />
</findbugs>
</target>
最后,开始愉快的操作Jenkins:
首先在Jenkins系统环境变量控制台里配置 findbugs.home 和 android-sdk.home ,你懂得。
然后“构建一个自由风格的软件项目”在Jenkins里。
在项目里按如下顺序添加“构建步骤”:
Execute shell
Command
android
update
project
-
p
.
-
-
target
android
-
19
Invoke Ant
Targets
clean
debug
findbugs
lint
看到了吧,findbugs命令就是我们刚才配置的Ant构建任务。
lint命令需要Jenkins安装响应的插件,这里不再赘述。
参考资料:
http://www.cnblogs.com/ifantastic/p/3981295.html
https://www.digitalocean.com/community/tutorials/how-to-build-android-apps-with-jenkins
http://stackoverflow.com/questions/17963508/how-to-install-android-sdk-build-tools-on-the-command-line
http://wolfgangkiefer.blog.163.com/blog/static/86265503201310206246960
原文:http://blog.csdn.net/kthq/article/details/46442147
内容总结
以上是互联网集市为您收集整理的全陷阱破解:在Linux环境下的Jenkins中持续集成Android工程全部内容,希望文章能够帮你解决全陷阱破解:在Linux环境下的Jenkins中持续集成Android工程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。