为android项目集成maven
为什么要为android项目增加maven集成功能呢?这里我想到几个主要理由:
- 部署测试人员和开发人员的角色分离,让他们摆脱eclipse开发环境设置android sdk环境,直接在服务器上运行一个命令,然后下载它的apk包,安装到手机上;
- 开发人员和android market市场发布人员的角色分离,市场发布人员不知道什么是签名等等,也是在服务器端运行命令即可,需要输入密码,这个过程和开发人员隔离;
- 如果仅有上述两个理由,那么用android默认的ant脚本也可以了,还希望android项目需要的类库也自动解决依赖问题,那么就使用maven吧。
说一下集成maven的步骤。
首先,要有一个通过eclipse和adt插件生成的android项目。可参见[cref 1448]。
然后,需要设置环境变量:ANDROID_HOME,对于windows环境,需要在环境变量中添加即可,对于mac,可以在~/.bash_login文件中加入:
export ANDROID_HOME=/Developer/java/android-sdk-mac
下载maven-android-sdk-deployer:http://github.com/mosabua/maven-android-sdk-deployer/archives/master
解压缩下载的文件,然后,通过命令行,进入到解压的目录下,执行:
mvn clean install
这个命令将会把android sdk的jar文件,包括google map等api安装到用户本地repository下。这一步应该不是必须的,我是按照官方文档执行的。因为以后为了解决maven报错的问题我整个删除了本地repository目录,继续使用maven android插件,没有问题。
在现有的eclipse android项目根目录下,创建pom.xml文件:
<?xml version=“1.0″ encoding=“UTF-8″?>
<project xmlns=“http://maven.apache.org/POM/4.0.0″xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd”>
<modelVersion>4.0.0</modelVersion>
<groupId>com.easymorse</groupId>
<artifactId>hello</artifactId>
<version>0.1-SNAPSHOT</version>
<packaging>apk</packaging>
<name>Hello</name>
<dependencies>
<dependency>
<groupId>android</groupId>
<artifactId>android</artifactId>
<version>2.1_r1</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<groupId>
com.jayway.maven.plugins.android.generation2
</groupId>
<artifactId>maven-android-plugin</artifactId>
<version>2.3.3</version>
<configuration>
<sdk>
<platform>7</platform>
</sdk>
<deleteConflictingFiles>true</deleteConflictingFiles>
</configuration>
<extensions>true</extensions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
这里要注意的是,<sdk><platform>中的7表示是目标平台的android sdk版本,即2.1版本。要根据情况做调整,比如使用milestone,应该是6。
为了在下面输入mvn命令可以简化,需要在settings.xml文件中加入:
<pluginGroups>
<pluginGroup>com.jayway.maven.plugins.android.generation2</pluginGroup>
</pluginGroups>
这样,就可以在项目目录下使用maven命令打包部署了:
mvn clean install android:deploy
或者可以打包:
mvn package
这里默认会使用debug签名打包,如果需要为在android market发布的正式版本,可以参照:http://code.google.com/p/maven-android-plugin/issues/detail?id=2
这里面的配置。
日志引用
为android项目集成maven的更多相关文章
- 轻松学习Ionic (二) 为Android项目集成Crosswalk(更新官方命令行工具)
现在集成crosswalk不用这么麻烦了!官方的命令行工具已经能让我们一步到位,省去很多工作,只需在cmd中进入项目所在目录(不能有中文目录,还得FQ),执行: ionic browser a ...
- android 项目集成 微信支付
0.环境 下载 libammsdk.jar 1.需要的常量值 public class Constant { /** 微信中用到的常量值 */ public static final class WX ...
- 在Windows上将ReactNative集成到现有的Android项目
React Natvie的官方文档的 Integrating with Existing Apps 已经很详细地教我们如何将React Natvie集成到现在的Android项目.我根据官方文档的步骤 ...
- Java进化? Kotlin初探与集成Android项目
欢迎Follow我的GitHub, 关注我的CSDN. Kotlin是基于JVM的编程语言, 由JetBrains公司开发, 眼下已经开源. IntelliJ IDEA, PyCharm, Andro ...
- 【笔记】android sdk集成的eclipse中导入项目
android sdk集成的eclipse中导入项目 想要把旧的ADT项目,一模一样的导入进来,需要: 1.把项目放到,非当前ADT的workspace目录下: 2.从Project中Import,选 ...
- 使用Maven构建Android项目
http://www.ikoding.com/build-android-project-with-maven/ 之前一直在做WEB前端项目,前段时间接手第一个Android项目,拿到代码之后,先试着 ...
- Maven管理Android项目1
maven-android-plugin网站:https://code.google.com/p/maven-android-plugin/wiki/GettingStarted android ...
- Weex的环境搭建以及集成到Android项目
最近由于公司的需要,初步研究了Weex,Weex是阿里开发的一个web的框架,官方的介绍如下: Weex 是一套简单易用的跨平台开发方案,能以 web 的开发体验构建高性能.可扩展的 native 应 ...
- Jenkins构建Android项目持续集成之findbugs的使用
Findbugs简介 关于findbugs的介绍,可以自行百度下,这里贴下百度百科的介绍.findbugs是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题 ...
随机推荐
- VR快速发展下,从业者如何把握机会?
美国科技博客VentureBeat周末刊登赛斯·沙赫纳(Seth Schachner)的文章,分析了在虚拟现实快速发展的情况下,业内所面临的机会,以及如何把握这些机会. 沙赫纳是资深的数字战略 ...
- nosql/nodejs基础
nosql定义:nosql--no only sql 目前流行的非关系型数据库:mongodb,redis,cassandra 非关系型数据库和内存存储hashmap数据结构有什么区别?hashmap ...
- atitit.hbnt orm db 新新增更新最佳实践o7
atitit.hbnt orm db 新新增更新最佳实践o7 1. merge跟个save了. 1 2. POJO对象处于游离态.持久态.托管态.使用merge()的情况. 1 3. @Dynamic ...
- beego中orm关联查询使用解析
这两天在学习beego框架,之前学习的时候遗漏了很多东西,比如orm.缓存.应用监控.模板处理等,这里将通过实例记录下如何使用beego自带的orm进行关联查询操作. 首先说明下,beego的orm有 ...
- JS 基本数据类型
一.undefined 类型 (ECMAScript 3引入undefined类型) 1.它的值只有一个 undefined 2.未初始化的变量 会隐式转换为undeFined类型 var box; ...
- Nginx缓存、压缩配置
1.缓存配置 只需在http的server模块里配置即可,如: location ~.*\.(jpg|png|gif)$ { expires 30d; } location ~.*\.(css|js) ...
- svn 403 Forbidden
用svn client的时候出现这么一个问题,客户端能正常check out,但是在check in(commit,mkdir等)的时候出错了: Server sent unexpected retu ...
- 实现多项式的JAVA类
p = coef[i] + (x * p); } Poly ...
- GTD中回顾闭环
一: 回顾的作用 :让事情告一段落 A: 回顾已经完成---->找到成就感 B: 安排未完成----->做到心中有数 2: 让心情告一段落 当事情一天的事情告一段落的时候,内心就会彻底放下 ...
- Java 中的instanceof简单讲解
Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法:resu ...