注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

拥有自己的梦想,跟随心的召唤

平凡是福

 
 
 

日志

 
 

使用Maven管理Android项目(Eclipse + Windows)  

2011-01-26 19:12:01|  分类: Android |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
    Android官方开发指引中并不包含对maven的支持,但在google code上有个开源的 maven-android-plugin 插件项目,使用该项插件可以很好的管理Android项目,并且对Android的多模块设计提供了良好的封装。下面是将Android集成Maven的详细环境配置步骤: 
1)搭建Google官网上指导的Android SDK开发环境 
    详细过程可参考 Android Windows开发环境搭建
    有一点特别的是 maven-android-plugin 插件的安装文档上要求 JDK1.5+,试过需要 JDK1.6 才OK,用 JDK1.5 编译打包时会出现如下错误: 
maven-android-plugin:2.8.4:emulator-start: java.lang.NoSuchMethodError: java.io.File.setExecutable(Z)Z

2)在你的Android项目根目录下创建pom.xml文件
    该文件声明了对 maven-android-plugin 插件和一些必须的依赖包的引用
<?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>qc.android</groupId>     <artifactId>qc-android-demo</artifactId>     <packaging>apk</packaging>     <version>0.1-SNAPSHOT</version>     <name>qc-android-demo</name>      <dependencies>         <dependency>             <groupId>com.google.android</groupId>             <artifactId>android</artifactId>             <version>${android-version}</version>             <scope>provided</scope>         </dependency>     </dependencies>      <build>         <sourceDirectory>src</sourceDirectory>         <plugins>             <plugin>                 <groupId>org.apache.maven.plugins</groupId>                 <artifactId>maven-compiler-plugin</artifactId>                 <version>2.3.2</version>                  <configuration>                     <source>1.5</source>                     <target>1.5</target>                     <encoding>UTF-8</encoding>                 </configuration>             </plugin>             <plugin>                 <groupId>com.jayway.maven.plugins.android.generation2</groupId>                 <artifactId>maven-android-plugin</artifactId>                 <version>2.8.4</version>                 <configuration>                     <sdk>                         <platform>${android-platform}</platform>                     </sdk>                     <emulator>                         <avd>${android-emulator}</avd>                     </emulator>                     <deleteConflictingFiles>true</deleteConflictingFiles>                 </configuration>                 <extensions>true</extensions>             </plugin>         </plugins>     </build>          <properties>         <android-platform>3</android-platform>         <android-version>1.5_r4</android-version>         <android-emulator>1.5</android-emulator>     </properties> </project>
注意:
  • maven-compiler-plugin配置中指定编译为jdk1.5版本,这是android平台编译的要求;而encoding是指定java源文件的编码,可以根据自己的实际环境修改。
  • android-platform是指Android API Level的值;android-version是指引用的android.jar的版本号,当前支持的版本列表可以到Maven仓库查看一下;android-emulator则是你的SDK Manager中配置的 Virtual devices的AVD Name的值,这个必须预先配置好,否则后续插件将无法启动Android的模拟器。
  • sourceDirectory当前设置为src,指定源代码的目录,这也是android项目默认的源代码路径,如果你的项目有特殊,则需仔细修改正确,例如使用maven创建的项目,默认路径是src\main\java。
  • 注意对android.jar的依赖,scope必须设置为provided,否则android.jar内的所有文件会解包并合并到项目的apk包内。
  • 项目的packaging指定为apk。

3)修改Maven的用户配置文件setting.xml
    该文件位于 {USER.HOME}/.m2 目录下(如 C:\Documents and Settings\{当前用户名}\.m2),编辑该文件并添加如下内容:
<?xml version="1.0" encoding="UTF-8"?> <settings>     ...     <pluginGroups>         <pluginGroup>com.jayway.maven.plugins.android.generation2</pluginGroup>     </pluginGroups> </settings> 
配置这个是为了可以使用简短的maven-android-plugin插件的命令行,否则
>mvn android:deploy 
就要长篇大论的写为:
>mvn com.jayway.maven.plugins.android.generation2:maven-android-plugin:deploy

如果仅使用命令行打包编译,至此基本上一切配置都完毕了。

4)使用maven-android-plugin插件的操作命令
    将项目打包为apk文件:>mvn package (apk文件打包到target目录下,默认会使用debug签名打包)
    将项目发布到本地Maven仓库:>mvn install
    将项目安装到模拟器或设备:>mvn android:deploy  (如果模拟器还没启动,这个命令会自动启动模拟器)
    查看更多插件命令的帮助:
        >mvn help:describe -Dplugin=com.jayway.maven.plugins.android.generation2:maven-android-plugin

    注:mvn package默认是使用debug签名,若要在执行mvn package后自动对apk文件进行指定key的签名,可以在pom.xml文件中添加如下的相关配置(使用 maven-jarsigner-plugin 插件):
<project ...>     ...     <build>         ...         <plugins>             ...             <plugin>                 <groupId>com.jayway.maven.plugins.android.generation2</groupId>                 <artifactId>maven-android-plugin</artifactId>                 <configuration>                     ...                     <sign>                       <debug>${android-signDebug}</debug>                  </sign>                 </configuration>                 ...             </plugin>             <plugin>                 <groupId>org.apache.maven.plugins</groupId>                 <artifactId>maven-jarsigner-plugin</artifactId>                 <version>1.2</version>                 <executions>                     <execution>                         <id>signing</id>                         <goals>                             <goal>sign</goal>                         </goals>                         <phase>package</phase>                         <inherited>true</inherited>                         <configuration>                             <archiveDirectory></archiveDirectory>                             <includes>                                 <include>target/*.apk</include>                             </includes>                             <keystore>${keyFile}</keystore>                             <storepass>${storePassword}</storepass>                             <keypass>${keyPassword}</keypass>                             <alias>${keyAlias}</alias>                         </configuration>                     </execution>                 </executions>             </plugin>         </plugins>     </build>      <properties>         ...         <android-signDebug>true</android-signDebug>         <keyPassword>your_password</keyPassword>         <storePassword>${keyPassword}</storePassword>     </properties>      <profiles>         <profile>             <id>sign</id>             <properties>                 <android-signDebug>false</android-signDebug>                 <keyFile>C:\dragon.keystore</keyFile>                 <keyAlias>dragon.keystore</keyAlias>             </properties>         </profile>     </profiles> </project>
    密码和证书的路径需要修改为正确的值,或者在命令行中直接指定,如:
    >mvn package -Psign -DkeyPassword=my_password
    简单验证一下签名是否成功,可以在命令行运行如下命令:
    >jarsigner -verify your.apk -verbose -certs
    如果命令行返回信息“jar 已验证。”则表示签名ok了。
    关于更多签名及生成key的信息,可以参考如何给apk文件签名

5)集成到Eclipse
    如果要在Eclipse内部,使Android项目同时受Maven管理,则需要安装Eclipse插件 m2eclipse-android-integration,这个插件的目地是使 M2EclipseAndroid Developer Tools (ADT)  和 Maven Android Plugin 三者在Eclipse内部良好的协调起来工作。
    这个插件的更新地址为:Maven Integration for Android Development Tools Update Site 

参考:
  评论这张
 
阅读(9470)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018