maven的安裝配置

 

Maven安裝、配置、使用

 

LifeBa文章如未註明轉載均爲原創.
轉載請註明: 轉載自Life吧 本文永久鏈接地址:http://www.lifeba.org/arch/maven_install_configuration.html

本文最後更新2012-11-26

一、Maven安裝與配置

1、下載安裝maven

去 Maven下載主頁 下載 Maven 3.0.4

apache-maven-3.0.4-bin.tar.gz 解壓到 d:/apache-maven-3.0.4,並在環境變量加入M2_HOME=d:/apache-maven-3.0.4,PATH中加入bin路徑:%M2_HOME%\bin。

確認安裝:cmd中輸入:mvn -version ,看到版本信息說明配置成功。

Apache Maven 3.0.4 (r1232337; 2012-01-17 16:44:56+0800)
Maven home: d:\apache-maven-3.0.4
Java version: 1.6.0_21, vendor: Sun Microsystems Inc.
Java home: C:\Program Files\Java\jdk1.6.0_21\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 7", version: "6.1", arch: "x86", family: "windows"

更新maven:下載新的版本,然後將環境變量的M2_HOME修改爲新版的路徑即可。

2、配置maven

a、執行 mvn help:system

該命令會打印出所有的Java系統屬性和環境變量,這些信息對我們日常的編程工作很有幫助。運行這條命令的目的是爲了讓Maven執行一個真正的任務。我們可以從命令行輸出看到Maven會下載maven-help-plugin,包括pom文件和jar文件。這些文件都被下載到了Maven本地倉庫中。我的下載的路徑是在:C:\Users\Administrator\.m2下。

b、安裝 m2eclipse 插件

這裏使用的是myeclipse9.1版本,打開 myeclipse configuration center,添加一個site:

name:m2eclipse
url:http://m2eclipse.sonatype.org/sites/m2e

展開m2eclipse節點,右擊Maven Integration for Eclipse(Required)項目,選擇 add to profile 添加到myeclipse中。

最後點擊右下角的 Apply change 就可以安裝了。

另外你也可以按照m2eclipse還提供了一組額外組件,這些組件的安裝地址爲http://m2eclipse.sonatype.org/sites/m2e-extras 和前面的安裝方法類似。

安裝成功後,File→New→Other,找到MyEclipse下的Maven一項,說明安裝成功。

c、m2eclipse相關設置

配置環境變量:MAVEN_OPTS的值爲:-Xms128m -Xmx512m,避免得到java.lang.OutOfMemeoryError

配置用戶範圍settings.xml(~/.m2/settings.xml),$M2_HOME/conf/settings.xml這個是全局用戶的配置,修改的話升級不方便。

IDE指定自定義的Maven
在m2eclipse環境中,點擊菜單欄中的Windows,然後選擇Preferences,在彈出的對話框中,展開左邊的Maven項,選擇Installation子項,在右邊的面板中,我們能夠看到有一個默認的Embedded Maven安裝被選中了,點擊Add…然後選擇我們的Maven安裝目錄M2_HOME,添加完畢之後選擇這一個外部的Maven

二、Maven簡單使用

1、創建Maven項目

Maven項目的約定:在項目的根目錄中放置pom.xml,在src/main/java目錄中放置項目的主代碼,在src/test/java中放置項目的測試代碼。你可以手動創建這些目錄和文件,也可以直接在命令行中使用Archetype生成項目骨架或者在eclipse中生成。

a、命令行中使用Archetype生成項目骨架

創建D:\training\maven_test,然後在該目錄下執行:

mvn archetype:generate

第一次執行,會自動下載相關的jar包到倉儲中。我們會看到一段長長的輸出,有很多可用的archetype供我們選擇,包括著名的Appfuse項目的archetype,JPA項目的archetype等等。每一個archetype前面都會對應有一個編號,同時命令行會提示一個默認的編號,其對應的archetype爲maven-archetype-quickstart,我們直接回車以選擇該archetype,緊接着Maven會提示我們輸入要創建項目的groupId、artifactId、 version、以及包名package,

生成的文件結構

maventest
│  pom.xml
└─src
├─main
│  └─java
│      └─maventest
│              App.java
└─test
└─java
└─maventest
AppTest.java

b、Myeclipse中創建項目

按照下面的引導界面,同樣可以創建maventest2項目

2、導入maven項目到eclipse中

在File菜單下的Import,選擇Existing Maven Projects

選擇maven項目路徑,點擊確定即可

現在在Eclipse視圖中可以看到創建的2個項目。

3、項目文件說明

a、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>maventest</groupId>
<artifactId>maventest</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>

<name>maventest</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>

groupId定義了項目屬於哪個組,一般和公司或者組織關聯

artifactId定義了當前Maven項目在組中唯一的ID。

version指定了maventest項目當前的版本——1.0-SNAPSHOT。

name元素對當前項目的備註信息

dependencies 添加依賴的jar文件,本地倉儲中沒的話會自動下載該jar。有其他的jar依賴,可以添加多個dependency節點。scope爲依賴範圍,若依賴範圍爲test則表示該依賴只對測試有效,換句話說,測試代碼中的import JUnit代碼是沒有問題的,但是如果我們在主代碼中用import JUnit代碼,就會造成編譯錯誤。如果不聲明依賴範圍,那麼默認值就是compile,表示該依賴對主代碼和測試代碼都有效

b、App類

public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}

簡單main入口函數。

c、AppTest類

public class AppTest
extends TestCase
{
public AppTest( String testName )
{
super( testName );
}

public static Test suite()
{
return new TestSuite( AppTest.class );
}

public void testApp()
{
assertTrue( true );
}
}

用來單元測試的類。

4、maven編譯項目

mvn clean compile

第一次執行會下載相應的一些jar包。clean告訴Maven清理輸出目錄target/,compile告訴Maven編譯項目主代碼,從輸出中我們看到Maven首先執行了clean:clean任務,刪除target/目錄,默認情況下Maven構建的所有輸出都在target/目錄中;接着執行resources:resources任務(未定義項目資源,暫且略過);最後執行compiler:compile任務

[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ maventest ---
[INFO] Deleting D:\training\maven_test\maventest\target
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ maventest
---
[debug] execute contextualize
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory D:\training\maven_test\mavent
est\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ maventest ---

[INFO] Compiling 1 source file to D:\training\maven_test\maventest\targe
t\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS

mvn clean test

編譯test代碼並測試。

[INFO] Compiling 1 source file to D:\training\maven_test\maventest\targe
t\test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.10:test (default-test) @ maventest ---
[INFO] Surefire report directory: D:\training\maven_test\maventest\targe
t\surefire-reports

-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running maventest.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.015 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] BUILD SUCCESS

上面2個編譯後生成相應的class文件。

├─classes
│  └─maventest
│          App.class

├─surefire
├─surefire-reports
│      maventest.AppTest.txt
│      TEST-maventest.AppTest.xml

└─test-classes
└─maventest
AppTest.class

如果編譯失敗的話,確認jdk版本。Maven的核心插件之一compiler插件默認只支持編譯Java 1.3,因此我們需要配置該插件使其支持Java 5。

pom.xml中加入編譯配置節點

<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
...
</project>

在m2eclipse環境中,右鍵pom.xml文件,選擇 run as下面的相應命令。

默認帶有mvn test,但我們想執行mvn clean test,很簡單,選擇Maven buid… 以自定義Maven運行命令,在彈出對話框中的Goals一項中輸入我們想要執行的命令,如clean test,設置一下Name,點擊Run即可。

5、maven打包發佈

mvn clean package

根據pom.xml中配置,在target目下,編譯生成 maventest-1.0-SNAPSHOT.jar 包。可以複製這個jar文件到其他項目的Classpath中使用。

[INFO] Building jar: D:\training\maven_test\maventest\target\maventest-1
.0-SNAPSHOT.jar
[INFO] BUILD SUCCESS

mvn clean install

爲了讓其他的maven項目直接引用這個jar呢?我們還需要一個安裝的步驟.通過install命令就可以成功安裝該jar文件。

[INFO] Installing D:\training\maven_test\maventest\pom.xml to C:\Users\A
dministrator\.m2\repository\maventest\maventest\1.0-SNAPSHOT\maventest-1.0-SNAPS
HOT.pom
[INFO] BUILD SUCCESS

同樣也可以在m2eclipse中,右鍵pom.xml文件,選擇相應命令來操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章