Maven學習筆記(入門篇)

Maven是一個採用純Java編寫的開 源項目管理工具。Maven採用了一種被稱之爲project object model (POM)概念來管理項目,所有的項目配置信息都被定義在一個叫做POM.xml的文件中,通過該文件,Maven可以管理項目的整個聲明週期,包括編 譯,構建,測試,發佈,報告等等。目前Apache下絕大多數項目都已經採用Maven進行管理。而Maven本身還支持多種插件,可以方便更靈活的控制 項目。 


一、安裝Maven

1、http://maven.apache.org/download.cgi下載地址:


補充一句:.tar.gz和.zip這兩種文件的區別:其實這兩個壓縮文件裏面包含的內容是一樣的,只是壓縮格式不一樣,tar.gz格式的文件比zip文件要小不少。tar.gz壓縮格式用於unix的操作系統,而zip用於windows的操作系統,但在windows系統中用WinRar工具同樣可以解壓縮tar.gz格式的,所以下載時不用擔心或是疑惑什麼!


2,、解壓文件



3、配置環境變量

M2_HOME : D:\WorkApp\apache-maven-3.3.9 
   PATH : %M2_HOME%\bin; 


4:驗證安裝是否成功 
在命令行上輸入 : mvn -version; 回車,如看到下面信息表示安裝成功:




二、創建第一個Maven項目

1,新建如下目錄結構


其中:src/main/java 目錄包含了項目的源代碼,src/test/java 目錄包含了項目的測試代碼,pom.xml是項目的項目對象模型(Project Object Model or POM)。 


2:POM
pom.xml 文件是maven對一個項目的核心配置,這個文件將包含你希望如何構建項目的大多數配置信息。POM大而複雜,但你不用全部去了解,只要使用一些常用的配置就可以了。下面列出這個POM的內容: 

<?xml version="1.0" encoding="UTF-8" ?>
<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.ionesmile.mavenhello</groupId>
  <artifactId>mavenhello</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>
  <dependencies>
	<dependency>
		<groupId>junit</groupId>
		<artifactId>junit</artifactId>
		<version>4.7</version>
		<scope>test</scope>
	</dependency>
  </dependencies>
  
  <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>
  	  <plugin>
  	    <groupId>org.apache.maven.plugins</groupId>
  	    <artifactId>maven-shade-plugin</artifactId>
  	    <version>1.2.1</version>
  	    <executions>
  	      <execution>
  	        <phase>package</phase>
  	        <goals>
  	          <goal>shade</goal>
  	        </goals>
  	        <configuration>
  	          <transformers>
  	            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
  	              <mainClass>com.ionesmile.mavenhello.SayHello</mainClass>
  	            </transformer>
  	          </transformers>
  	        </configuration>
  	      </execution>
  	    </executions>
  	  </plugin>
    </plugins>
  </build>
</project>

所有的Maven項目都必須配置這四個配置項:
<modelVersion>4.0.0</modelVersion> <!-- 當前POM模型的版本,相對於Maven2和Maven3,這裏只能是4.0.0 -->
<groupId>com.ionesmile.mavenhello</groupId>    <!--groupId指的是項目名的項目組,默認就是包名-->
<artifactId>mavenhello</artifactId>    <!--artifactId指的是項目中的某一個模塊,默認命名方式是"項目名-模塊名"-->
<version>SNAPSHOT-0.0.1</version>     <!--version指的是版本,這裏使用的是Maven的快照版本-->
// 可選項
<packaging>jar</packaging>    <!--packaging項目的類型,默認是jar,描述了項目打包後的輸出。類型爲jar的項目產生一個JAR文件,類型爲war的項目產生一個web應用。-->


3、編寫主代碼

在src ---> mavenHello目錄下:

package com.ionesmile.mavenhello;

public class SayHello {

   public String sayHello() {
	   return "Hello, Maven";
   }
   public static void main(String[] args) {
	   SayHello h = new SayHello();
	   System.out.println(h.sayHello());
   }
}

編寫完成後,在DOS下使用 mvn clean  compile命令進行編譯,然後會出現一堆輸出。等待一下,直到出現 BUILD SUCCESSFUL


4,測試代碼

在test ---> mavenHello目錄下:

package com.ionesmile.mavenhello;

import static org.junit.Assert.assertEquals;
import org.junit.Test;

public class SayHelloTest {
   
   @Test
   public void testSayHello(){
	   SayHello sayHello = new SayHello();
	   String result = sayHello.sayHello();
	   
	   assertEquals("Hello, Maven", result);
   }
}
編寫完成後,運行 mvn clean test 命令。

注:執行Test需要依賴junit框架,上面pom.xml中已經加入,見<dependencies>標籤。

另外在這裏如果人品不好,可能會出現兩個問題,我在配置的時候出現了第二個問題,第一個問題也提出來,避免遇到坑。

問題一:


第二個問題:

出現如下異常:BUILE FAILURE
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginResolutionException

解決辦法,詳見:http://stackoverflow.com/questions/29147329/unable-to-create-a-new-maven-hello-world-project




5、打包和運行

執行 mvn clean package 命令,會生成\target\mavenhello-1.0-SNAPSHOT.jar文件.

執行 mvn clean install 命令,會將該jar文件導入到本地倉庫。文件路徑爲:倉庫路徑 + groupId + artifactId,如:D:\WorkApp\AppWorkSpace\MavenSpace\com\ionesmile\mavenhello\mavenhello\1.0-SNAPSHOT\mavenhello-1.0-SNAPSHOT.jar

   這裏我的倉庫位置爲D:\WorkApp\AppWorkSpace\MavenSpace,是因爲我改動了apache-maven-3.3.9\conf\settings.xml,改動如下:


如果不改動,就是上面默認的路徑:${user.home}/.m2/repository,如:C:\Users\Administrator\.m2\repository


6,在控制檯輸出“Hello, Maven”



從安裝maven到運行Hello Maven的完整步驟到這裏就結束了,非常感謝下列資料提供的指導。

參考圖書:《Maven實戰》

參考網址:http://wentao365.iteye.com/blog/903396/

發佈了50 篇原創文章 · 獲贊 22 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章