這章咱們講講幾個經常使用的 Maven 命令。因爲執行命令是在工程的基礎上來的,因此咱們要先建立一個 Maven 工程,具體如何建立,在上一篇博客已經介紹了:http://www.cnblogs.com/ysocean/p/7420373.htmlhtml
①、在 src/main/java 新建包 com.ys.maven,而後在這個包中建立類 HelloMaven.javajava
package com.ys.maven; public class HelloMaven { //傳入一個字符串並返回 public String Hello(String name){ return name; } }
②、在 src/test/java 新建包 com.ys.maven,而後在這個包中建立類 HelloTest.javaweb
package com.ys.maven; import junit.framework.Assert; import org.junit.Test; public class HelloTest { @Test public void testHello(){ HelloMaven he = new HelloMaven(); String name = he.Hello("Tom"); //判斷 Hello 傳入的參數是不是 "maven" Assert.assertEquals("maven", name); } }
③、pom.xml 文件以下:apache
<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.ys</groupId> <artifactId>hellomaven</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.0</version> <scope>test</scope> </dependency> </dependencies> </project>
爲何要這樣寫,咱們後面會詳細講解。tomcat
一、mvn compile 編譯,將Java 源程序編譯成 class 字節碼文件,會在你的項目路徑下生成一個target目錄, 在該目錄中包含一個classes文件夾,裏面全是生成的class文件及字節碼文件。 二、mvn test 測試,並生成測試報告,清理的過程當中會刪除刪除target目錄下編譯的內容。 三、mvn clean 將之前編譯獲得的舊的 class 字節碼文件刪除,執行該命令會刪除項目路徑下的target文件,可是不會 刪除本地的maven倉庫已經生成的jar文件。 四、mvn pakage 打包。這個命令會在你的項目路徑下一個target目錄,而且擁有compile命令的功能進行編譯,同時會在 target目錄下生成項目的動態打包後的文件,例如 web工程打 war包,Java工程打 jar 包文件。 五、mvn install 該命令包含了package命令功能,不但會在項目路徑下生成class文件和jar包,同時會在你的本地maven 倉庫生成jar文件,供其餘項目使用 六、deploy,在整合或者發佈環境下執行,將最終版本的包拷貝到遠程的repository,使得其餘的開發者或者工程能夠共享。 對項目打包有三種打包方式,pom打包,jar包和war包。打包方式在pom.xml文件中進行指定。 注:同時執行屢次install或者package命令會每次都更新jar文件。 pom工程通常是聚合工程,表明父工程,負責管理jar包的版本、maven插件的版本等,主要作統一的依賴管理。 jar包就是普通的打包方式,能夠是pom工程的子工程。 war包的都是web工程,是能夠直接放到tomcat下運行的工程。 打成pom包和jar包的工程在新建的時候能夠不須要制定maven項目的原型,達成war包的項目須要制定maven項目原型,指定的 原型一般爲maven-archetype-webapp,表明web項目。 其中最經常使用的就是maven clean和maven install。
注:app
mvn clean deploy依次執行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9個階段。webapp
由上面的分析可知主要區別以下,maven
①、compile:將Java 源程序編譯成 class 字節碼文件。單元測試
第一步:選擇 pom.xml 文件,右鍵--->Run As ---->2 Maven build...測試
第二步:在第一步執行完後彈出來的對話框中,輸入 compile,而後點擊 Run 按鈕
第三步:查看控制檯
第四步:在 target 目錄下,咱們會發現編譯生成的 class 文件
②、test:測試,並生成測試報告
第一步:選擇 pom.xml 文件,右鍵--->Run As ---->2 Maven build...,而後在彈出框中輸入 test
或者選擇 pom.xml 文件,右鍵--->Run As------>6 Maven test,以下圖
第二步:查看控制檯
分析測試程序,咱們傳入的參數是Tom,而咱們但願的是maven,很顯然是不相等的,那麼測試失敗
若是測試類 HelloTest.java改成以下:
從新執行 mvn test 命令,控制檯以下:
生成的測試報告能夠在以下目錄查看:target/surefire-reports
③、mvn clean 將之前編譯獲得的舊的 class 字節碼文件刪除
第一步:選擇 pom.xml 文件,右鍵--->Run As ---->2 Maven build...,而後在彈出框中輸入 clean
或者選擇 pom.xml 文件,右鍵--->Run As------>3 Maven clean,以下圖
第二步:查看控制檯
第三步:發現 mvn compile 編譯好的文件這時已經清除了
④、mvn pakage 打包,動態 web工程打 war包,Java工程打 jar 包。
第一步:選擇 pom.xml 文件,右鍵--->Run As ---->2 Maven build...,而後在彈出框中輸入 package
第二步:查看控制檯
第三步:進入到 target 目錄,會發現打出來的 jar 包
⑤、mvn install 將項目生成 jar 包放在倉庫中,以便別的模塊調用
這裏咱們就不截圖了,執行命令後,進入到 settings.xml 文件中配置的倉庫,你會發現生成的 jar 包