天天看點

maven的入門hello world

編寫pom

  pom.xml是maven的核心。Project Object Model,定義了項目的基本資訊,用于描述項目如何建構,項目依賴等。

首先,建立hello-world檔案夾,建立pom.xml檔案:

  xml頭指定xml版本和編碼方式,project元素是pom.xml的根元素,modelVersion指定了目前POM的版本。

  groupId定義項目屬于哪個組,這個組往往和項目所在的組織或公司有關聯。如果公司是mycom,項目名是myapp,groupId應該是com.mycom.myapp

  artifactId定義了目前Maven項目在組中唯一的ID,我們這個helloworld項目的定義為hello-world,你可以為不同的子子產品配置設定artifactId,如myapp-util、myapp-domain等。

  version指定了版本

  SNAPSHOT意為”外照“,說明項目還在開發中,不穩定版本

maven的java代碼幾點注意:

  1、應該把項目主代碼放在src/main/java/目錄下(約定)

  2、java類的包名和pom中定義的groupId和artifactId吻合。

編寫java代碼:com/test/helloworld/HelloWorld.java

使用maven進行編譯。

  在項目根目錄運作:mvn clean compile

  項目根目錄(我這裡是在hello-world檔案夾下)

  1、clean告訴maven清除target

  2、執行resource。resource任務(demo中沒有定義項目資源,略過)

  3、compile:compile編譯,講項目主代碼編譯至target/classess目錄

clean和resource和compile對應一些maven插件以及插件目标

測試。

主代碼與測試代碼應該位于獨立的目錄中,主代碼目錄預設是src/main/java,測試代碼目錄預設是src/test/java

測試java:hello-world\src\test\java\com\test\helloworld\HelloWorldTest.java

我們寫單元測試用到了junit,是以需要在pom.xml中添加junit依賴

代碼中添加了dependencies元素,元素中包含多個dependency聲明項目依賴。dependency中有groupId、artifactId等坐标

scope元素表示依賴範圍,scope為test表示該依賴隻對測試有效,預設值為compile,表示對主代碼和測試代碼有效。

mvn clean test測試

mvn clean package打包

上面的Helloworld中沒有指定打包類型,使用預設打包類型jar。生成一個命名規則為artifactId+version的jar檔案,如果需要自定義命名可以用finalName。打包的檔案存放在target中。

預設打包的jar是不能讓其他maven項目也使用的。

mvn clean install

将項目自動打包并安裝在本地maven倉庫中,讓其他項目可以像junit一樣下載下傳使用。

預設打包的jar是不包含main方法的類的。我們可以配置插件:

這樣的話mvn clean install會生成兩個jar,符合預設命名的是含有main類的。字首是original的是不包含的。

使用java指令可以執行測試。