在看完Maven开发Android指南 2 配置android-maven-plugin后,有人会疑惑怎么没有讲android-maven-plugin。这是Maven的特性之一,不需要手工下载plugin,配置pom.xml文件,只要是Maven Central 中有的,maven会自动下载对应的插件。
创建项目分两种:手工创建和使用Maven Archetypes
手工创建:
使用android提供的工具创建项目:
http://developer.android.com/tools/projects/projects-cmdline.html
android create project \
--target <target_ID> \
--name <your_project_name> \
--path path/to/your/project \
--activity <your_activity_name> \
--package <your_package_namespace>
Maven
Archetypes:
开始一个新的项目可以使用Maven Archetype Plugin来创建项目的基本构架。有很多Android Maven Archetypes。如 android-with-test-archetype:创建包含测试代码的Android工程;android-release-archetype创建包含发布功能的Android工程。
本例中将使用android-quickstart这个Maven Archetype Plugin。在Maven Central中搜索android-quickstart查询Latest
Version,目前最新的是1.0.8,在-DarchetypeVersion=1.0.8
archetypeArtifactId:Maven
Archetype Plugin的ID
archetypeGroupId:Maven
Archetype Plugin的类别
archetypeVersion:Maven
Archetype Plugin的版本号
groupId:工程的类别(可以理解为JAVA包名)
artifactId:工程的ID(可以理解为工程的名称)
mvn
archetype:generate -DarchetypeArtifactId=android-quickstart
-DarchetypeGroupId=de.akquinet.android.archetypes
-DarchetypeVersion=1.0.8 -DgroupId=com.study.android -DartifactId=HelloMavenAndroid
Generating project in Interactive mode
一路回车就可以创建HelloMavenAndroid工程
在HelloMavenAndroid文件内,打开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.study.android</groupId>
<artifactId>HelloMavenAndroid</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>apk</packaging>
<name>HelloMavenAndroid</name>
<properties>
<platform.version> 2.3.3
</platform.version>
</properties>
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>${platform.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile>
<assetsDirectory>${project.basedir}/assets</assetsDirectory>
<resourceDirectory>${project.basedir}/res</resourceDirectory>
<nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory>
<sdk>
<platform>10</platform>
</sdk>
<undeployBeforeDeploy>true</undeployBeforeDeploy>
</configuration>
<extensions>true</extensions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
在这个pom.xml文件中高亮部分,分别是:
打包的类型:apk
使用Android平台:2.3.3(指向properties.platform.version)
配置Android
Maven Plugin:3.1.1
一般的JAVA工程打包的类型是jar或者是war,而android工程打包的类型是apk。在执行中,告诉Android Maven Plugin生成的文件类型是apk。Android Maven Plugin会负责调用Android SDK将JAVA字节码转换成Dalvik 虚拟机识别的内容。在配置plugin中,Android Maven Plugin必须声明这是扩展的插件(<extensions>true</extensions>)。平台的版本和平台号码需要对应,<version>2.3.3</version>和<platform>10</platform>,可以在API
Level找到对应的关系。
依赖的Android平台可以在Maven Central查询到。在依赖中声明<scope>provided</scope>是很有必要的。意思是告诉Maven在打包是不用将Android
SDK提供的jar打包到应用中。
创建AVD:
参考:详解如何创建和使用AVD
请注意在Target栏位选择:Android 2.3.3 – API Level 10
运行:
使用AVD Manager.exe创建好AVD,并Start后,
进入HelloMavenAndroid,输入maven命令,最后在模拟器中看到Hello HelloMavenAndroid
cd HelloMavenAndroid
mvn android:emulator-start
mvn clean package android:deploy
android:run
名词解释:
Maven Archetype Plugin:The Archetype Plugin allows the user to create a Maven
project from an existing template called an archetype.
参考:
http://www.sonatype.com/books/mvnref-book/reference/android-dev-sect-helloandroidexample.html
http://www.sonatype.com/books/mvnref-book/reference/android-dev-sect-archetype.html
http://code.google.com/p/maven-android-plugin/wiki/GettingStarted
http://developer.android.com/tools/projects/projects-cmdline.html
http://maven.apache.org/archetype/maven-archetype-plugin/
http://blog.csdn.net/yaowj2/article/details/6794129
http://search.maven.org/
http://www.jizhuomi.com/android/environment/269.html
分享到:
评论