一键完成android从svn拉取代码编译打包
2015-02-06 15:04
218 查看
记录一下这两天研究的东西-----在windows一键完成拉取svn上的安卓源代码并自动打包。
准备:ant打包工具,android sdk,以及ant拉取代码所依赖的一个jar包svnant.jar,放到ant目录下的lib目录下即可。
ant是apache的一个编译工具,我的版本是:apache-ant-1.9.4
sdk就不多介绍了。
我们安卓开发者通常情况下可能是在eclipse中完成打包,打一个包,打完了后万事大吉,但是有一些场景这种方式是不适合的,比如我要批量打包,或者有几十个甚至几百个项目要打包,这时显然无法再用原始的方式做了。
闲言少叙。我们下载到ant解压出来并把下面的bin目录设置成系统环境变量,这样我们在cmd窗口里就能使用ant了:
ant默认会找当前目录下的build.xml文件。如果要选择指定文件,可以使用ant -buildfile filename命令。
好。我们开始配置build.xml,build.xml主要做的事情就有两件:
1、从svn拉取代码;
2、编译拉取到的代码。
我们先看build.xml依赖的一个配置文件:build.properties
就是一些变量的配置。
应用信息,svn地址、svn用户名和密码,apk生成路径,最后我们在当前目录下的/product/apk目录下取包即可,最后一行是sdk的路径。
接下来看一下build.xml
嗯,就是这么简单,可以配合一个bat文件使用,bat里就写三个字符ant,以后双击就可以了,也可以在cmd中运行ant。
如果需要打多渠道包,则需要下载另外一个依赖jar包,ant-contrib-1.0b3.jar,放到ant的lib目录下,然后再build.xml中用foreach标签循环执行name为deploy的target即可,注意拷贝的时候把名字改成跟渠道相关的名字,否则自己都不知道那个包对应哪个渠道。
基本上就是这样。有可能在编译的时候会出一些意想不到的错误,但是基本上可以通过错误信息搞定,问题不大。比如我开始的时候就是混编的时候出错,后面发现是proguard版本太低,换一下后就搞定了。
准备:ant打包工具,android sdk,以及ant拉取代码所依赖的一个jar包svnant.jar,放到ant目录下的lib目录下即可。
ant是apache的一个编译工具,我的版本是:apache-ant-1.9.4
sdk就不多介绍了。
我们安卓开发者通常情况下可能是在eclipse中完成打包,打一个包,打完了后万事大吉,但是有一些场景这种方式是不适合的,比如我要批量打包,或者有几十个甚至几百个项目要打包,这时显然无法再用原始的方式做了。
闲言少叙。我们下载到ant解压出来并把下面的bin目录设置成系统环境变量,这样我们在cmd窗口里就能使用ant了:
ant默认会找当前目录下的build.xml文件。如果要选择指定文件,可以使用ant -buildfile filename命令。
好。我们开始配置build.xml,build.xml主要做的事情就有两件:
1、从svn拉取代码;
2、编译拉取到的代码。
我们先看build.xml依赖的一个配置文件:build.properties
就是一些变量的配置。
应用信息,svn地址、svn用户名和密码,apk生成路径,最后我们在当前目录下的/product/apk目录下取包即可,最后一行是sdk的路径。
接下来看一下build.xml
<project name="test" basedir="." default="usage"> <property name="rootdir" value="."/> <!-- svn拉取代码所需要的一些东西 --> <property name="svnant.lib" value="E:\work\ant\apache-ant-1.9.4\lib" /> <property name="svnant.jar" value="${svnant.lib}/svnant.jar" /> <property name="svnClientAdapter.jar" value="${svnant.lib}/svnClientAdapter.jar" /> <property name="svnjavahl.jar" value="${svnant.lib}/svnjavahl.jar" /> <property name="ant-lib-dir" value="E:\work\ant\apache-ant-1.9.4\lib"/> <!-- 上面贴的那个文件 --> <property file="build.properties" /> <!-- 安卓项目里自带的一个配置文件,拉取代码后自动拿到,也可以先放到当前目录下 --> <loadproperties srcFile="project.properties" /> <!-- build运行的入口 --> <target name="usage"> <echo message="start build"/> <antcall target="checkout" /> </target> <property file="build.properties" /> <path id="classpath"> <fileset dir="${lib-dir}" includes="***.jar" /> </path> <!-- svn配置信息 --> <typedef resource="org/tigris/subversion/svnant/svnantlib.xml" /> <svnSetting id="svn.setting" svnkit="true" username="${svn.user}" password="${svn.password}" javahl="false" /> <!-- checkout代码 --> <target name="checkout"> <svn refid="svn.setting"> <export srcUrl="${urlRepos}" destPath="${rootdir}" force="true"/> </svn> <antcall target="prepare"/> </target> <fail message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var" unless="sdk.dir" /> <import file="${sdk.dir}/tools/ant/build.xml" /> <!-- 准备编译,把项目的bin目录删除 --> <target name="prepare"> <delete dir="${rootdir}/bin"/> <antcall target="deploy" /> </target> <target name="deploy"> <!-- 编译 --> <antcall target="release" /> <!-- 拷贝到目标目录下 --> <copy tofile="${gos.path}/MangoTravel_android.apk" > <fileset dir="${out.absolute.dir}/" includes="MangoTravel-release.apk" /> </copy> <echo message="build finished"/> </target> </project>
嗯,就是这么简单,可以配合一个bat文件使用,bat里就写三个字符ant,以后双击就可以了,也可以在cmd中运行ant。
如果需要打多渠道包,则需要下载另外一个依赖jar包,ant-contrib-1.0b3.jar,放到ant的lib目录下,然后再build.xml中用foreach标签循环执行name为deploy的target即可,注意拷贝的时候把名字改成跟渠道相关的名字,否则自己都不知道那个包对应哪个渠道。
基本上就是这样。有可能在编译的时候会出一些意想不到的错误,但是基本上可以通过错误信息搞定,问题不大。比如我开始的时候就是混编的时候出错,后面发现是proguard版本太低,换一下后就搞定了。
相关文章推荐
- 安卓开发_Android编译完成后的代码结构
- Android编译完成后的代码结构
- maven+tomcat+jenkins+shell 实现从版本库源码(svn/git)一键编译打包及上线发布
- Android使用Gradle命令动态传参完成打包不需要修改代码
- Android_Ant_多渠道打包/一键自动编译 ——Mac lion 10.8.2下
- 一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp)
- apache ant从svn下载代码并将其编译打包
- Android编译完成后的代码结构
- iOS-cocos2d-X 游戏开发之七】整合Cocos2dX的Android项目到Xcode项目中,Xcode编写&编译代码,Android导入打包运行即可!
- Android_Ant_多渠道打包/一键自动编译 ——Mac lion 10.8.2下
- cocos2dx最新2.1.5版本跨平台整合NDK+Xcode,Xcode编写&编译代码,Android导入打包运行
- Android使用Gradle命令动态修改BASE_URL(测试/正式环境地址)完成打包,不需要修改代码
- android 应用 Ant脚本自动编译、打包、代码混淆、签名、安装等
- Android_Ant_多渠道打包/一键自动编译
- Android apk编译,打包过程详解及个人心得,附上java+doc写的自动化批量打包代码
- 一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp)
- jenkins自动检测到合并代码后实现一键打包编译
- Android studio svn忽略文件提交代码,混淆代码打包
- ASP.Net一键自动化更新代码、编译、合并dll、压缩js、css、混淆dll、zip打包、发布到测试环境的bat批处理
- [Android Studio 权威教程]多渠道打包和一键完成(全部产品)打包并签名