为什么要为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的更多相关文章

  1. 轻松学习Ionic (二) 为Android项目集成Crosswalk(更新官方命令行工具)

        现在集成crosswalk不用这么麻烦了!官方的命令行工具已经能让我们一步到位,省去很多工作,只需在cmd中进入项目所在目录(不能有中文目录,还得FQ),执行: ionic browser a ...

  2. android 项目集成 微信支付

    0.环境 下载 libammsdk.jar 1.需要的常量值 public class Constant { /** 微信中用到的常量值 */ public static final class WX ...

  3. 在Windows上将ReactNative集成到现有的Android项目

    React Natvie的官方文档的 Integrating with Existing Apps 已经很详细地教我们如何将React Natvie集成到现在的Android项目.我根据官方文档的步骤 ...

  4. Java进化? Kotlin初探与集成Android项目

    欢迎Follow我的GitHub, 关注我的CSDN. Kotlin是基于JVM的编程语言, 由JetBrains公司开发, 眼下已经开源. IntelliJ IDEA, PyCharm, Andro ...

  5. 【笔记】android sdk集成的eclipse中导入项目

    android sdk集成的eclipse中导入项目 想要把旧的ADT项目,一模一样的导入进来,需要: 1.把项目放到,非当前ADT的workspace目录下: 2.从Project中Import,选 ...

  6. 使用Maven构建Android项目

    http://www.ikoding.com/build-android-project-with-maven/ 之前一直在做WEB前端项目,前段时间接手第一个Android项目,拿到代码之后,先试着 ...

  7. Maven管理Android项目1

    maven-android-plugin网站:https://code.google.com/p/maven-android-plugin/wiki/GettingStarted   android ...

  8. Weex的环境搭建以及集成到Android项目

    最近由于公司的需要,初步研究了Weex,Weex是阿里开发的一个web的框架,官方的介绍如下: Weex 是一套简单易用的跨平台开发方案,能以 web 的开发体验构建高性能.可扩展的 native 应 ...

  9. Jenkins构建Android项目持续集成之findbugs的使用

    Findbugs简介 关于findbugs的介绍,可以自行百度下,这里贴下百度百科的介绍.findbugs是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题 ...

随机推荐

  1. Nodejs学习笔记(十三)— PM2

    目录 简介 pm2安装 操作 启动 关闭 其它方式启动/关闭 从PM2中删除 重载和重启 查看详细信息 多项目操作 集群 其它操作 写在之后... 简介 PM2 pm2是一个内置负载均衡的node.j ...

  2. crossplatform---Node.js Applications with VS Code

    Node.js is a platform for building fast and scalable server applications using JavaScript. Node.js i ...

  3. attilax.java 注解的本质and 使用最佳实践(3)O7

    attilax.java 注解的本质and 使用最佳实践(3)O7 1. 定义pojo 1 2. 建立注解By eclipse tps 1 3. 注解参数的可支持数据类型: 2 4. 注解处理器 2 ...

  4. VS2013中Python学习笔记[Django Web的第一个网页]

    前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...

  5. layer-list实现只有左、右和下边框的圆角矩形

    项目中需要实现如下效果的布局 也就是一个左右下角带圆角,上方不带圆角的白色背景矩形,而且只有左.右和下边框,颜色为浅灰色. 当然,切一个.9图片作为背景也能实现,但是能用代码实现的还是尽量用代码实现, ...

  6. spring scope="prototype", scope="session"

    转自: http://www.cnblogs.com/JemBai/archive/2010/11/10/1873954.html struts+spring action应配置为scope=&quo ...

  7. 关于ORACLE的重启命令

    有时候数据死了,或者没有监听,不必重启机子,重启一下数据库服务行了,下面是linux下的启动步骤,没有在win下执行过,可能也可以!以oracle9i为例(1) 以oracle身份登录数据库,命令:s ...

  8. 2014 Hangjs 见闻流水账第一天

    前言 6月21日~6月22日, 第一次跑远门去参加一个大会(广州 -> 杭州),本来打算,在火车的回来的路上,把这两天的东西记录一下,不过,火车上的环境实在恶劣,同时也高估了自己的专注力,所以, ...

  9. 2014中国软件开发者调查(二):Java、.NET、Web、云计算特点

    继上周五放出第一篇中国软件开发者调查报告后,很多初学者和开发者翘首以盼第二篇.第三篇报告--希望这些调查报告能够给他们带来指导,解决他们的疑惑.确定他们的学习和使用信心.经过笔者在周末的努力,内容更加 ...

  10. 如何提高nodejs程序的稳定性,健壮性

    在网上看到一些帖子,吐糟,质疑nodejs 程序的稳定性,为什么呢?其一,可能这个和javascript有关吧,node是拿javascript去实现的,而javascript又被称为是“世界上误解最 ...