关于Maven的好的资料:html
Apache官网:http://maven.apache.org/java
Apache Maven 入门篇 ( 上 ):http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-1-406235-zhs.htmlapache
Apache Maven 入门篇 ( 下 ):http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-2-405568-zhs.htmloracle
Maven教程:http://www.yiibai.com/maven/maven_environment_setup.htmlapp
孔浩Maven视频教程:http://www.icoolxue.com/album/show/45yii
1.在Eclipse中右键,New->Maven Project,一路Next,而后输入项目信息:maven
Group Id:com.maven.demo测试
Artifact Id:mavenDemoui
Version:选择”0.0.1-SNAPSHOT“就好编码
package:这一栏会自动填充为 Group Id.Artifact Id的形式。不用管。
点击Finish以后,项目新建完成。其中 “src/main/java”目录包含了项目的源代码,"src/test/java"目录包含了项目的测试代码,pom.xml是项目的项目对象模型。
目录 | 文件 |
/ | 存放pom.xml和全部子目录 |
/src/main/java | 项目的源代码 |
/src/main/resource | 项目须要用到的资源 |
/src/test/java | 项目的测试源代码 |
/src/test/resource | 测试须要用到的资源 |
/target | 编译产生的文件 |
2.Maven采用了一种被称为project object model(POM)的概念来管理项目,全部的项目配置信息都被定义在一个叫作pom.xml的文件中。经过该文件,maven能够管理项目的整个生命周 期,包括编译、构建、测试、发布、报告等等。咱们打开pom.xml文件,会看到里面的内容以下:
<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.maven.demo</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>
<project>:全部pom.xml文件中的顶层元素,申明了一些POM相关的命名空间以及xsd元素,用来约束maven的写法。
<modelVersion>:指POM使用的对象模型的版本。这个值不多改动,对于Maven2及Maven3来讲,只能是4.0.0。
<groupId>:该值来源于咱们建立项目时输入的”Group Id"。指明建立项目的组织或者小组的惟一标识。groupId是项目的关键标识,此标识以组织的彻底限定名来定义。比 如,org.apache.maven.plugins是全部Maven插件项目指定的groupId。
<artifactId>:该值来源于咱们建立项目时输入的“Artifact Id"。指明此项目产生的主要产品的基本名称。项目的主要产品一般为一个JAR文件。第二,源代码包一般使用artifactId做为最后名称的一部分。 典型的产品名称使用这个格式: <artifactId>- <version>. <extension>(好比:myapp-1.0.jar)。
<version>:该值来源于咱们建立项目时选择的”Version“。表示项目产品的版本号。Maven帮助你管理版本,能够常常看到SNAPSHOT这个版本,意思是快照,代表项目处于开发阶段,是不稳定的版本。
<packaging>:指项目产生的主要产品的格式。
在POM中,groupId,artifactId,packaging,version叫作maven的坐标,它能惟一的肯定一个项目。有了maven的坐标,咱们也能够用来指定咱们的项目所依赖的其余项目,插件,或者父项目。通常maven坐标写成以下的格式:
groupId:artifactId:packaging:version
像咱们的例子就会写成:
com.mycompany.helloworld: helloworld: jar: 1.0-SNAPSHOT
咱们的Maven示例很简单,可是大项目通常会分红几个子项目。在这种状况下,每一个子项目就会有本身的 POM 文件,而后它们会有一个共同的父项目。这样只要构建父项目就可以构建全部的子项目了。子项目的 POM 会继承父项目的 POM。另外,全部的 POM都继承了一个 Super-POM。Super-POM 设置了一些默认值,好比默认的目录结构,默认的插件等等,它遵循了惯例优于配置的原则。因此尽管咱们的这个 POM 很简单,可是这只是看得见的一部分。运行时候的 POM 要复杂的多。 若是想看到运行时候的 POM 的所有内容的话,能够运行下面的命令:
$mvn help:effective-pom
<name>:项目的显示名称,一般用于maven产生的文档中。值默认为 artifactId。
<url>:指定项目站点,一般用于maven产生的文档中。
<properties>:项目的”Properties"。对应于在项目上右键->"Properties"。里面能够配置项目采用的编码方式等等。
<dependencies>:指项目的依赖。一般由不少的<dependency>组成,这里默认只有“junit-3.8.1"。
<dependency>:一个依赖单元。意思是本项目须要依赖一个”groupId和 artifactId为junit,而且version为3.8.1“的另一个项目,其实就是”junit-3.8.1.jar"包。实际使用中,若是 咱们须要某个jar包,就会添加一个<dependency>单元,而后更新项目以后maven就会自动帮助咱们下载咱们须要的jar包。
下面咱们经过更改pom.xml的方式来下载项目须要的包。
更改pom.xml,添加 junit4.8和testng依赖,也就是:
<dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.1.1</version> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.2</version> </dependency>
3.更新项目。在项目上右键,选择 Maven->“Update Project"。更待更新完毕,能够看到项目结构多了一个”Maven Dependencies"库。打开库便可看到咱们新添加的junit 和testng包。