1. 程式人生 > >Maven入門(一)(HelloMaven)

Maven入門(一)(HelloMaven)

每次學習新知識,都從helloworld開始,今天也不例外,hellowrold我來了。

一、Maven專案之核心--------pom.xml

1.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><!-- 指定當前POM模型版本-->

	 <!-- 定義專案屬於哪個組,這個組和專案需哦在的組織或公司存在關聯 
	 例如:你的公司是kafei;專案名為:.mvnproject;那麼groupId就為:com.kafei.mvnproject-->
     <groupId>com.kafei.mvnproject</groupId>
	 <!-- 定義當前MAVEN專案在組中唯一的ID-->
     <artifactId>helloworld</artifactId>
	 <!-- 指定專案當前的版本,SNAPSHOT為快照的意思,隨著專案的發展,版本會不斷的更新-->
     <version>1.0-SNAPSHOT</version>
	  <!-- 為專案指定更加詳細清楚的名稱,方便使用者更好的閱讀理解-->
     <name>Maven Hello World Project</name>
	 <!-- 編寫程式碼測試-->
	 <!-- 在測試時需要使用到junit,配置好之後,如果是第一次使用MAVEN,
	 則在測試時會從中央倉庫下載名為junit_4.11.jar的檔案-->
	 <dependencies>
		<dependency>
		<groupId>junit</groupId>
		<artifactId>junit</artifactId>
		<version>4.11</version>
		<scope>test</scope>
		</dependency>
	</dependencies>
</project>
注:這段程式碼中最重要的就是groupId、artifactId、version,這三個元素定了一個專案基本的座標,

        在maven的世界中,都是以這些基本的座標來進行區分的。

二、編寫主要程式碼(預設Maven假設專案主程式碼位於src/main/java目錄)

a.建立專案主資料夾,這裡以helloword進行命名,遵循MAVEN約定,然後在這個資料夾下建立src/main/java目錄

b.完成a操作後,在src/main/java目錄下建立com/kafei/mvnproject/helloworld/HelloWorld.java

HelloWorld.java:

package com.kafei.mvnproject.helloworld;
public class HelloWorld
{
	public String sayHello(){
		return "Hello Maven";
	}

	public static void main(String[] args){
		System.out.print(new HelloWorld().sayHello());
	}
}
該JAVA類的包名是:com.kafei.mvnproject.helloworld,與之前在pom.xml配置的groupId、artifactId相吻合。

3.編譯程式碼

命令:mvn clean compile

在DOS視窗下,使用CD命令切換到你專案的根目錄

如:cd C:\Users\使用者名稱\Desktop\helloworld,然後執行編譯命令

執行編譯命令後輸出如下圖:

clean告訴Maven清理輸出目錄targer,compile告訴Maven編譯專案主程式碼,從上面輸出的資訊中可以看到Maven首先執行了

clean:clean 任務,刪除target/目錄。預設情況下,Maven構建的所有輸出都在targer目錄中,接著執行resources:resources 任務

最後執行compile:compile 任務,將專案主程式碼編譯至target/classes目錄。

其中clean:clean、resources:resources、compile:compile對應了一些Maven外掛。

注意:在首次使用Maven進行編譯專案時,可能會從中央倉庫下載一些所需的檔案,請耐心等待。

三、編寫測試程式碼

命令:mvn clean test

為了使專案結構清晰,主程式碼與測試程式碼應該放在不同的目錄中。

Maven專案中預設的主程式碼目錄為src/main/java

Maven專案中預設的測試程式碼目錄為src/test/java,應當先建立該目錄,然後在該目錄下建立檔案HelloWorldTest.java

在上文的pom.xml中我已經增加了測試專案的配置。

主要配置如下:

 <!-- 在測試時需要使用到junit,配置好之後,如果是第一次使用MAVEN,
	 則在測試時會從中央倉庫下載名為junit_4.11.jar的檔案-->
	 <dependencies>
		<dependency>
		<groupId>junit</groupId>
		<artifactId>junit</artifactId>
		<version>4.11</version>
		<scope>test</scope>
		</dependency>
	</dependencies>
HelloWorldTest.java:
package com.kafei.mvnproject.helloworld;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class HelloWorldTest
{
	@Test
	public void testSayHello(){
		HelloWorld helloWorld=new HelloWorld();
		String result=helloWorld.sayHello();
		assertEquals("Hello Maven",result);
	}
}
執行mvn clean test命令測試通過後輸出如下測試報告:


注意:在首次使用Maven進行測試專案時,輸出的可能比上面的要多,可能會從中央倉庫下載一些所需的檔案,請耐心等待。

從上面的資訊中可以看以看出測試程式碼通過編譯了,編譯後的檔案為target\test-classes\com\kafei\mvnproject\helloworld\HelloWorldTest.class,

接著surefire:test任務執行並且測試,surefire是maven中負責測試的外掛,上圖中的資訊就是測試報告,可以看出一共運行了多少測試、

失敗了多少、出錯了多少、跳過了多少,顯然測試通過了。

至此Maven從建立專案到編寫主程式碼,然後進行測試已經完了,後續會說明怎麼對Maven專案打包和執行。、