Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
安装
- 去maven官网http://maven.apache.org/download.cgi 下载最新的maven安装包
- 解压后放到自己希望的目录下面,例如/usr/local/apache-maven-3.3.9
- 添加环境变量M3_HOME 和MAVEN_HOME,以及PATH
export M3_HOME=/usr/local/apache-maven-3.3.9
export MAVEN_HOME=/usr/local/apache-maven-3.3.9
export PATH=$M3_HOME/bin:$PATH
- 验证:输入mvn -version指令,如果一切正常,可以看到如下信息:
KevindeMacBook-Pro:Documents kevin$ mvn -version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /usr/local/apache-maven-3.3.9
Java version: 1.8.0_101, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.11.4", arch: "x86_64", family: "mac"
更新Maven本地库
Maven的本地资源库是用来存储所有项目的依赖关系(插件jar和其他文件,这些文件被Maven下载)到本地文件夹。很简单,当你建立一个Maven项目,所有相关文件将被存储在你的Maven本地仓库。
默认情况下,Maven的本地资源库默认为 .m2 目录文件夹:
Unix/Mac OS X – ~/.m2
Windows – C:\Documents and Settings{your-username}.m2
可以到找到 {M2_HOME}\conf\setting.xml, 更新 localRepository 到其它名称。
{M2_HOME}\conf\setting.xml
Maven远程存储库
在Maven中,当你声明的库不存在于本地存储库中,也没有不存在于Maven中心储存库,该过程将停止并将错误消息输出到 Maven 控制台。
告诉 Maven 来获得 Java.net 的依赖,你需要声明远程仓库在 pom.xml 文件这样:
Java.net资源库:
<repositories>
<repository>
<id>java.net</id>
<url>https://maven.java.net/content/repositories/public/</url>
</repository>
</repositories>
JBoss Maven资源库:
<repositories>
<repository>
<id>JBoss repository</id>
<url>http://repository.jboss.org/nexus/content/groups/public/</url>
</repository>
</repositories>
Maven依赖机制
传统的项目管理中需要我们自己来下载依赖,有了Maven之后,可以
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
</dependencies>
定制库到Maven的本地资源库
当需要使用的jar不存在于Maven的中心资源库的时候,就需要定制该库到中心资源库:
mvn install:install-file -Dfile=c:\kaptcha-{version}.jar -DgroupId=com.google.code -DartifactId=kaptcha -Dversion={version} -Dpackaging=jar
创建Java项目
想要用maven创建一个java项目,则需要键入以下命令:
mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name}-DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
为了使它变成一个eclipse项目,则:
mvn eclipse:eclipse
更新pom.xml,笔者使用的是JDK 1.8版本,所以:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
从更新JUnit 3.8.1到最新的 4.11:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
打包:
mvn package
运行:
java -cp target/HelloWordMaven-1.0-SNAPSHOT.jar com.kevin.App
通过Maven创建web项目
命令如下:
$ mvn archetype:generate -DgroupId=com.kevin -DartifactId=HellowWorldMavenWeb -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false