Maven基礎教程 分類: C_OHTERS 2015-04-10 22:53 232人閱讀 評論(0) 收藏

更多內容請參考官方文檔: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安裝目錄



二、修改配置文件的路徑

相關文章
相關標籤/搜索