編寫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指令可以執行測試。