Android开发学习(6)Maven管理项目

来源:互联网 发布:c51单片机流水灯程序 编辑:程序博客网 时间:2024/06/16 09:57

学习安卓开发有了一小段时间,一直想使用maven管理安卓的开发,这样就和以前的开发模式有了很大的重合,本着这个念头, 我们开始一步步使用maven创建一个安卓项目:

开发环境:

JDK 1.8
Maven 3.1.1
IDEA 2016

主要步骤:

配置 android 开发环境

根据 android 官网提示,配置 android 开发环境,直到能在 eclipse 上运行简单的 helloAndroid 项目。请参照官网(http://developer.android.com/),直到能运行模拟器,并看到 hello。
目的是为了检验 android sdk 和 ADT(Android Developer Tools) 已配置正确,步骤2 中将不会被使用这个 helloAndroid 项目。

配置 maven android 开发环境

根据 maven-android-plugin 官网提示,配置 maven android 开发环境,能在 IDEA 上运行 android 项目。
maven 的安装和配置请参照maven官网。

环境变量

设置 ANDROID_HOME,指向 android sdk 所在文件夹

ANDROID_HOME=D:\Android\android-sdkPath=...;%MAVEN_HOME%\bin;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\build-tools;%ANDROID_HOME%\platforms;%ANDROID_HOME%\build-tools\android-4.2.2

maven-android-sdk-deployer

https://github.com/mosabua/maven-android-sdk-deployer,点击下载 maven-android-sdk-deployer 源码,解压缩到本地任意路径。

这是一个maven项目,执行 mvn clean install 直至 Success,会把 android 开发相关的所有 jar 包安装到本地的 mvn repository 中。
cmd:安装安卓4.0插件

mvn clean install -P4.0

pluginGroups

打开 maven 配置文件 settings.xml (默认路径:C:\Documents and Settings{user}.m2\settings.xml) ,
确认 pluginGroups 节点添加:

<pluginGroups>          <pluginGroup>com.jayway.maven.plugins.android.generation2</pluginGroup>  </pluginGroups>  

新建项目

在本地建立 maven 项目路径,比如\AndroidSpace\maven-test

cd \AndroidSpace\maven-test

next:

mvn archetype:generate -DarchetypeArtifactId=android-quickstart -DarchetypeGroupId=de.akquinet.android.archetypes -DarchetypeVersion=1.0.6 -DgroupId=com.xvshu.android -DartifactId=android-xvshu

next:

mvn clean install 

关联模拟器

avd是安卓开发时,虚拟一个安卓系统,和本地代码联调的程序,在idea中,可以直接创建:
在工具栏中找到AVD manager的图标,点击打开AVD管理器,选择Create Device”创建模拟机型,选好后,点击“finish”,记住自己创建的avd的name。
这里写图片描述
打开 pom.xml,在 maven-android-plugin 的 configuration 中添加avd 名称。

    <configuration>          ...          <emulator>             <avd>Nexus 5 API 16</avd>         </emulator>         ...      </configuration>  

执行 mvn android:deploy,将项目deploy到模拟器中,直至sucess.

avd

常见错误:

java.lang.ClassNotFoundException: org.sonatype.aether.RepositorySystem

解决办法;
android-maven-plugin插件升级为3.8.1:

<?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.xvshu.android</groupId>    <artifactId>android-xvshu</artifactId>    <version>1.0-SNAPSHOT</version>    <packaging>apk</packaging>    <name>android-xvshu</name>    <properties>        <android.sdk.path>D:\Android\android-sdk</android.sdk.path>        <android.sdk.version>15</android.sdk.version>    </properties>    <dependencies>        <dependency>            <groupId>com.google.android</groupId>            <artifactId>android</artifactId>            <version>2.1.2</version>            <scope>provided</scope>        </dependency>    </dependencies>    <build>        <plugins>            <plugin>                <groupId>com.jayway.maven.plugins.android.generation2</groupId>                <artifactId>android-maven-plugin</artifactId>                <version>3.8.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>                        <path>${android.sdk.path}</path>                        <platform>${android.sdk.version}</platform>                    </sdk>                    <deleteConflictingFiles>true</deleteConflictingFiles>                    <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>
原创粉丝点击