Android之Maven集成Ant多渠道打包

这篇博客介绍了如何结合Ant和Maven在Android项目中进行多渠道打包。作者通过Ant脚本实现文件替换、POM.xml中应用名称的修改,以及执行Maven命令来打包和签名apk。在Ant中,利用for循环处理不同的渠道信息,并通过Java类动态修改配置文件,最终调用Maven完成打包过程。
摘要由CSDN通过智能技术生成

在网上找了这方面的东西,貌似比较少,对maven也不是太了解,所以就想了个比较笨的办法,即用ant执行mvn命令来执行pom.xml文件,

maven只负责做打包和签名,其它的多渠道操作都是ant中处理。


ant.xml部分做循环的操作:

1. 文件替换

2. pom.xml中<appName>标签的修改

3. 执行mvn命令,打apk包及签名

Ant核心代码:

Html代码 
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <project name="test" basedir="." default="run" xmlns:artifact="urn:maven-artifact-ant">  
  3.     <!-- ant build的引用 -->  
  4.     <property file="project.properties" />  
  5.     <property file="ant.properties" />  
  6.     <property file="build.properties" />  
  7.   
  8.     <!-- SDK目录(获取操作系统环境变量env.ANDROID_SDK_HOME的值) -->  
  9.     <property name="sdk-folder" value="D:/Program Files/android-sdk-windows" />  
  10.   
  11.     <property name="antcontrib_jar_path" value="C:/Users/Win7/Desktop/MavenAPK/ant-contrib-1.0b3.jar" />  
  12.     <property name="appName" value="AppName" />  
  13.   
  14.     <property name="assetKey" value="${ant.contrib.asset.key}" />  
  15.     <property name="nowpath" value="${assetKey}" />  
  16.     <!-- 渠道名:渠道号 -->  
  17.     <property name="assetPathKey" value="${nowpath}" />  
  18.   
  19.     <property name="classPath" value="a.b.ControlAnt" />  
  20.     <property name="javacPath" value="a/b/ControlAnt.java" />  
  21.   
  22.     <property name="mavenPath" value="${M2_HOME}/bin" />  
  23.   
  24.     <!-- 使用第三方的ant包,使ant支持for循环-->  
  25.     <taskdef resource="net/sf/antcontrib/antcontrib.properties">  
  26.         <classpath>  
  27.             <pathelement location="${antcontrib_jar_path}" />  
  28.         </classpath>  
  29.     </taskdef>  
  30.   
  31.     <!-- SDK指定平台目录 -->  
  32.     <property name="sdk-platform-folder" value="${sdk-folder}/platforms/android-4" />  
  33.     <!-- SDK中tools目录 -->  
  34.     <property name="sdk-tools" value="${sdk-folder}/tools" />  
  35.     <!-- SDK指定平台中tools目录 -->  
  36.     <property name="sdk-platform-tools" value="${sdk-platform-folder}/tools" />  
  37.   
  38.     <!-- 编译需要的jar; 如果项目使用到地图服务则需要maps.jar -->  
  39.     <property name="android-jar" value="${sdk-platform-folder}/android.jar" />  
  40.   
  41.     <!-- 编译后的文件放置目录 -->  
  42.     <property name="outdir-target" value="target" />  
  43.     <!-- 清单文件 -->  
  44.     <property name="manifest-xml" value="AndroidManifest.xml" />  
  45.     <!-- 源文件目录 -->  
  46.     <property name="resource-dir" value="res" />  
  47.     <property name="asset-dir" value="assets" />  
  48.     <!-- java源文件目录 -->  
  49.     <property name="srcdir" value="src" />  
  50.     <property name="srcdir-ospath" value="${basedir}/${srcdir}" />  
  51.     <!-- 外部类库所在目录 -->  
  52.     <property name="external-lib" value="libs" />  
  53.     <property name="external-lib-ospath" value="${basedir}/${external-lib}" />  
  54.   
  55.     <!-- 生成class目录 -->  
  56.     <property name="outdir-classes-ospath" value="${basedir}/${outdir-target}" />  
  57.   
  58.     <!-- 替换文件key : value -->  
  59.     <property name="assetchannelname" value="" />  
  60.     <property name="assetchannelvalue" value="" />  
  61.   
  62.     <!-- 循环修改路徑名 -->  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值