因为拿到的工程本身就带有maven控制,但怎样创建一个android工程,并且带有maven控制,一直是困扰我的问题。
经过在网上的搜索终于有了进展。
1、首先需要解决一个问题:原型插件如何知道相关的原型呢?
http://maven.apache.org/archetype/maven-archetype-plugin/specification/archetype-catalog.html中给出了解释。
2、另外一个网上提供了maven android插件,使得我们可以直接利用eclipse生成带有maven控制的android程序。
https://github.com/akquinet/android-archetypes/wiki/
3、我们要生成的是一个简单的android带maven控制的程序,android-quickstart-archetype类型即可满足我们的需要。点击后进去,发现此种类型提供了相关参数:
mvn archetype:generate \
-DarchetypeArtifactId=android-quickstart \
-DarchetypeGroupId=de.akquinet.android.archetypes \
-DarchetypeVersion=1.0.5 \
-DgroupId=your.company \
-DartifactId=my-android-application
4、这儿有几样东西很重要,groupid,artifactid,version,其中version可能会有所更新,请到如下网站查找最新的version(也就是我们常说的maven中央库)
将android-quickstart输入即可查到最新的版本,我此时查到的版本已经更新至1.0.6
准备工作做完,现在可以工作了。
创建一个最简单的带maven控制android工程
1、打开eclipse,通过工具new project出现如下窗口:
2、选中Maven Project, 点击Next,然后保持默认选项,再点击next,弹出如下窗口
3、在过滤器中输入android,如果你已经有这样的插件,将会显示出来,否则就需要通过Add Archetype按钮进行添加
3-1、因为我之前已经安装了这三个插件,因此输入过滤器后直接就有了,如果系统没有找到android-quickstart插件,则需点击Add Archetype,弹出如下窗口,然后将所需要的插件的groupid,artifactid及版本号输入进去,根据准备工作中提及,分别是:
de.akquinet.android.archetypes
android-quickstart
1.0.6
如下图所示:
4、点击OK后,系统会去寻找相关的插件,然后选中此插件,再次点击Next,依次填入新工程的groupid, artifactid, package,如下图所示:
最后点击Finish,交由系统自动生成。生成后实际上是一个最简单的带maven控制的android程序,运行后显示"Hello study!”
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.szkingdom</groupId>
<artifactId>study</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>apk</packaging>
<name>study</name>
<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>maven-android-plugin</artifactId>
<version>2.8.4</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>7</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>