常見的mvn編譯打包方式:
mvn clean -U package -Dtest -DfailIfNoTests=false
mvn clean -U package -Dmaven.test.skip=true
mvn clean -U install -Dtest -DfailIfNoTests=false
mvn clean -U install -Dmaven.test.skip=true
“mvn clean package”和“mvn clean install”的區別:
兩個都有clean命令,都將清除上一次Maven執行的結果。這意味着他們將刪除目標文件夾。Package命令是編譯代碼,並將其打包。例如,如果項目是一個jar文件,那么當打包並將其放置在目標目錄的某個位置(默認情況下)時,它將創建一個jar文件。install會編譯和打包,同時也會把這個包放到你的本地倉庫中。這將使其他項目可以引用它並從本地存儲庫中獲取它。Package & install是Maven創建生命周期中的兩個階段。包裝階段將在此之前執行所有階段並停止將項目打包成jar。同樣,安裝階段將執行所有以前的階段,並最終在本地為其他相關項目安裝項目。
“-DskipTests“和“-Dmaven.test.skip=true“的區別:
在使用mvn package進行編譯、打包時,Maven會執行src/test/java中的JUnit測試用例,有時為了跳過測試,會使用參數-DskipTests和-Dmaven.test.skip=true,這兩個參數的主要區別是:
-DskipTests,不執行測試用例,但編譯測試用例類生成相應的class文件至target/test-classes下。
-Dmaven.test.skip=true,不執行測試用例,也不編譯測試用例類。
傳送門:http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
使用mvn打包比較功能常用
1.package,這個命令會在你的項目路徑下一個target目錄,並且擁有compile命令的功能進行編譯,同時會在target目錄下生成項目的jar/war文件。
2.install,該命令包含了package命令功能,不但會在項目路徑下生成class文件和jar包,同時會在你的本地maven倉庫生成jar文件,供其他項目使用。即將項目輸出構件部署到本地倉庫。
3.clean,執行該命令會刪除項目路徑下的target文件,但是不會刪除本地的maven倉庫已經生成的jar文件。即清除上一次Maven執行的結果。
4.compile,編譯命令,會在你的項目路徑下生成一個target目錄,在該目錄中包含一個classes文件夾,里面全是生成的class文件及字節碼文件。
5. build,這個插件讓你自己去配置執行目標。
6. generate-sources,根據pom配置去生成源代碼格式的包
注:同時執行多次install或者package命令會每次都更新jar文件。
