一、使用Maven创建项目的原因如下:
软件开发讲究代码复用,通过复用可以使工程更易维护,代码量更少..... 开发者可以通过继承,组合,函数模块等实现不同程度上的代码复用.但不知你有没有想过,软件开发也是一种工程作业,绝不仅仅是写代码,还涉及到工程的各种管理(依赖,打包,部署,发布,各种渠道的差异管理.....),你每天都在build,clean,签名,打包,发布,有没有想过这种过程,也可以像代码一样被描述出来, 也可以被复用。
详见 知乎《如何通俗地理解 Gradle?》:http://www.zhihu.com/question/30432152
Gradle也是基于Maven的,所以道理都是一样的。
二、eclipse创建Maven项目
1、File -> New Project -> Project -> Maven Project
2、之后选择 Use Default Workspace Location(其实这个路径是documents and settings\用户名\.m2\repository)。
但如果配置了maven/conf/settings.xml中的<localRepository>标签的值得话就是那个标签的值。
3、选择模板(Archetype,原型、典型、模板、骨架)
注:这一步加载的比较慢,一开始全是空的。我还以为哪里错了,结果过了一会就自动出来了。
(1)创建Java的Maven项目
(2)创建Android的Maven项目,这里可以看到 —— 并没有 "Artifact Id" 的值为 “android-quickstart” 。
因此需要手动添加 “Add Archtype”。参考 http://www.cnblogs.com/shortboy/archive/2013/04/15/3021493.html
Archetype Group Id: de.akquinet.android.archetypes
Archetype Artifact Id:android-quickstart
Archetype Version: 1.0.6
Repository URL: (空)
注意:如果Archetype Version输入的不是具体版本号,而是 RELEASE ,Maven会自动搜索最新版的并为你更新 Archetype 列表信息。
这里最新的Archetype Version为 1.1.0
4、设定模板参数(Artifact ,人工制品、手工制品、加工品、石器)
Group Id 是项目组织的唯一标示符,一般采用“com.公司域名” 的形式,实际对应java的包结构,是main目录里java的包名。
Artifact Id 是项目的唯一标示符,实际对应项目名,也是项目根目录的名称。
5、maven的目录结构如下
(1)Java版
(2)Android版
6、pom.xml 就是 Maven的配置文件了
(1)Java版本
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.chy.mavendemo</groupId>
<artifactId>MavenDemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>MavenDemo</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
(2)Android版本
<?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.chy.mavenandroiddemo</groupId>
<artifactId>MavenAndroidDemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>apk</packaging>
<name>MavenAndroidDemo</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<platform.version> 4.1.1.4
</platform.version>
<android.plugin.version>3.8.2</android.plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>${platform.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>${android.plugin.version}</version>
<extensions>true</extensions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<configuration>
<sdk>
<platform>16</platform>
</sdk>
</configuration>
</plugin>
</plugins>
</build>
</project>