为什么要为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. Atitit.web三大编程模型 Web Page Web Forms 和 MVC

    Atitit.web三大编程模型 Web Page    Web Forms 和 MVC 1. 编程模型是 Web Forms 和 MVC (Model, View, Controller). 2.  ...

  2. paip.注册java程序为LINUX系统服务的总结。

    paip.注册java程序为LINUX系统服务的总结. ////////////////实现开机启动. 标准方法是按照/etc/init.d/下面的文件,修改一下:然后chkconfig xxx on ...

  3. SQL Server 添加链接服务器

    背景 在SQL SERVER中,如果我们查询数据库需要关联另外一台数据库中表,在这种情况下我们可以通过添加服务器链接来实现. 案列 方式1.sql server 提供了图形化界面,如下: 右键> ...

  4. 看2015年TFC游戏大会,云计算何以唱主角

    日前,第10界TFC游戏大会浩浩荡荡地在北京国际会议中心成功举办了.与往届不同的是,这一次TFC的金苹果奖被四家云计算公司夺走,它们分别是金山云.阿里云.腾讯云和首都在线.四家云计算公司夺走了游戏大会 ...

  5. android开源项目和框架

    特效: http://www.androidviews.net/ http://www.theultimateandroidlibrary.com/ 常用效果: 1. https://github.c ...

  6. javaWEB项目感受

    1.WEB-INF下的内容是受保护的,不能直接访问,可以通过转发的方式访问. 2.OGNL技术: 对象图像导航语言,是一种功能强大的表达式语言.可以让我们用非常简单的表达式访问对象层. OGNL引擎访 ...

  7. Cluster群集

    Cluster群集一般来讲有四个功能1. 冗余功能,就是说在这个群集中的任何一台机器出现本机或网络故障时,整个网络仍不中断,对外的服务也不中断,网络有多个路线可以走,服务器也可以相互代替.2.负载均衡 ...

  8. Java 多线程(1)-Thread和Runnable

    一提到Java多线程,首先想到的是Thread继承和Runnable的接口实现 Thread继承 public class MyThread extends Thread { public void ...

  9. MySQL 错误

    (1) Ignoring query to other database D:\Program Files\MySQL\MySQL Server 5.6\bin>mysql -Uroot 原因是 ...

  10. Android 使用java.net.socket 的接收问题

    // 初始化socketsocket = new Socket(InetAddress.getByName(sip), sport);InputStream sin = socket.getInput ...