为什么要为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学习笔记(九)--- 与Redis的交互(mranney/node_redis)入门

    目录 简介和安装 redis简介 redis安装 redis运行 node_redis安装 连接到redis服务器redis.createClient() 认证 client.auth(passwor ...

  2. Django基础——Model篇(二)

    一 Model连表关系 一对多:models.ForeignKey(其他表)    多对多:models.ManyToManyField(其他表)    一对一:models.OneToOneFiel ...

  3. MF-800U

    MF-800U 价格:200元左右 https://item.taobao.com/item.htm?spm=a230r.1.14.6.kfkqoY&id=4963072384&ns= ...

  4. 内存中 OLTP - 常见的工作负荷模式和迁移注意事项(三)

    ----------------------------我是分割线------------------------------- 本文翻译自微软白皮书<In-Memory OLTP – Comm ...

  5. ffmpeg mp3 to m3u8

    ffmpeg -i Sunshine.mp3 -c:a libmp3lame -b:a 128k -map 0:0 -f segment -segment_time 10 -segment_list ...

  6. 【转】Xcode 6制作动态及静态Framework

    http://years.im/Home/Article/detail/id/52.html 创建iOS动态库 新建工程并选择默认Target为Cocoa Touch Framework, 如图: 做 ...

  7. TCP/IP 端口号大全

    常用端口: 20 ftp-data FTP 数据端口 21 ftp 文件传输协议(FTP)端口:有时被文件服务协议(FSP)使用 22 ssh 安全 Shell(SSH)服务 23  telnet T ...

  8. 图解 MongoDB 地理位置索引的实现原理

    地理位置索引支持是MongoDB的一大亮点,这也是全球最流行的LBS服务foursquare 选择MongoDB的原因之一.我们知道,通常的数据库索引结构是B+ Tree,如何将地理位置转化为可建立B ...

  9. 读取XML的问题

    利用SAX读取写了代码,调试了一下午却一直在parse里抛异常.尼玛,Java的库函数还真心不怎么好用. 把代码贴上来先: package com.example.gulanfinddemo; imp ...

  10. asp.net 多个文件同时下载

    1.首先读取文件夹下的文件,可能同时存在多个文件 2.选中文件,然后点击下载,同时可以选择多个文件. 思路:通过生产压缩包的形式进行下载,然后再清楚压缩包,这样用户可以一次性全部下载下来. 一.获取目 ...