更多內容請參考官方文檔:http://maven.apache.org/guides/index.html html
官方文檔很詳細,基本上能夠查找到一切相關的內容。java
另外,快速入門可參考視頻:孔浩的maven視頻。
linux
1、快速入門
apache
(一)搭建環境
一、下載maven,並將之解壓
或者直接使用yum 來安裝
二、配置環境變量
export PATH=/home/jediael/setupfile/apache-maven-3.1.1/bin:$PATH
三、驗證環境
[jediael@master maven_demo]$ mvn -v
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 23:22:22+0800)
Maven home: /home/jediael/setupfile/apache-maven-3.1.1
Java version: 1.7.0_51, vendor: Oracle Corporation
Java home: /usr/java/jdk1.7.0_51/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-431.17.1.el6.x86_64", arch: "amd64", family: "unix"
(二)項目編寫
一、創建以下目錄結構
[jediael@master maven_demo]$ tree
.
├── pom.xml
└── src
├── main
│ └── java
│ └── com
│ └── ljh
│ └── mavendemo
│ └── HelloMaven.java
└── test
└── java
└── com
└── ljh
└── mavendemo
└── HelloMavenTest.java
11 directories, 3 files
二、HelloMaven.java內容以下
package com.ljh.mavendemo;
public class HelloMaven{
public String sayHello(String s){
return "hello:"+s;
}
public static void main(String[] args){
HelloMaven hm = new HelloMaven();
System.out.println(hm.sayHello("maven"));
}
}
三、HelloMavenTest.java內容以下:
package com.ljh.mavendemo;
import org.junit.*;
import static org.junit.Assert.*;
public class HelloMavenTest{
@Test
public void testSayHello(){
HelloMaven hm = new HelloMaven();
assertEquals("hello:Jason",hm.sayHello("Jason"));
}
}
四、pox.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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ljh.mvn</groupId>
<artifactId>mavendemo</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>mavendeom</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
(三)運行項目
一、編譯項目
$ mvn compile
二、運行測試
$ mvn test
三、也能夠對項目直接打包成jar包
$ mvn package
此過程也會執行test
四、若所生成的jar包中包括main方法,則可使用如下命令執行
$ java -cp target/mavendemo-1.0-SNAPSHOT.jar com.ljh.mavendemo.HelloMaven
hello:maven
通過這些步驟後的目錄結構以下:
[jediael@master maven_demo]$ tree
.
├── pom.xml
├── src
│ ├── main
│ │ └── java
│ │ └── com
│ │ └── ljh
│ │ └── mavendemo
│ │ └── HelloMaven.java
│ └── test
│ └── java
│ └── com
│ └── ljh
│ └── mavendemo
│ └── HelloMavenTest.java
└── target
├── classes
│ └── com
│ └── ljh
│ └── mavendemo
│ └── HelloMaven.class
├── maven-archiver
│ └── pom.properties
├── mavendemo-1.0-SNAPSHOT.jar
├── surefire-reports
│ ├── com.ljh.mavendemo.HelloMavenTest.txt
│ └── TEST-com.ljh.mavendemo.HelloMavenTest.xml
└── test-classes
└── com
└── ljh
└── mavendemo
└── HelloMavenTest.class
22 directories, 9 fileseclipse
(四)項目間互相引用maven
一、將上述項目安裝至maven庫中ide
$ mvn install工具
這會在/home/jediael/.m2/repository/com/ljh目錄下生成如下文件:測試
.
└── mvn
└── mavendemo
├── 1.0-SNAPSHOT
│ ├── mavendemo-1.0-SNAPSHOT.jar
│ ├── mavendemo-1.0-SNAPSHOT.pom
│ ├── maven-metadata-local.xml
│ └── _remote.repositories
└── maven-metadata-local.xml
3 directories, 5 filesui
二、在其它項目中便可經過如下內容對上述項目進行引用
<dependencies>
<dependency>
<groupId>com.ljh.mvn</groupId>
<artifactId>mavendemo</artifactId>
<version>.0-SNAPSHOT</version>
</dependency>
</dependencies>
2、其它內容
一、設置本地倉庫的位置
修改$MAVEN_HOME/setting.xml文件中的內容:
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
—>
默認是~/.m2/repository,可根據實際狀況修改
二、自動生成目錄結構
因爲使用maven須要按照特定的目錄結構放置文件,而每次手工建立目錄及pom.xml太麻煩,所以maven提供了工具用於自動建立相關目錄及pom.xml。
mvn archetype:generate -DgroupId=com.ljh.demo -DartifactId=helloworld -Dversion=0.0.1-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
[jediael@master test]$ tree helloworld/
helloworld/
├── pom.xml
└── src
├── main
│ └── java
│ └── com
│ └── ljh
│ └── demo
│ └── App.java
└── test
└── java
└── com
└── ljh
└── demo
└── AppTest.java
11 directories, 3 files
3、在eclipse中使用maven
(一)配置maven
可使用eclipse中的默認配置,但通常會指定本身使用的maven。
一、指定maven安裝目錄
二、修改配置文件的路徑