一、Maven常用命令及其介紹
描述 | |
mvn clean | 對(duì)項(xiàng)目進(jìn)行清理,刪除target目錄下編譯的內(nèi)容 |
mvn compile | 編譯項(xiàng)目源代碼 |
mvn test | 對(duì)項(xiàng)目進(jìn)行運(yùn)行測試 |
mvn package | 打包文件并存放到項(xiàng)目的target目錄下,打包好的文件通常都是編譯后的class文件 |
mvn install | 在本地倉庫生成倉庫的安裝包,可供其他項(xiàng)目引用,同時(shí)打包后的文件放到項(xiàng)目的target目錄下 |
二、常用命令使用場景舉例
1. mvn clean package
依次執(zhí)行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7個(gè)階段package命令完成了項(xiàng)目編譯、單元測試、打包功能,但沒有把打好的可執(zhí)行jar包(war包或其它形式的包)布署到本地maven倉庫和遠(yuǎn)程maven私服倉庫
2. mvn clean install
依次執(zhí)行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8個(gè)階段install命令完成了項(xiàng)目編譯、單元測試、打包功能,同時(shí)把打好的可執(zhí)行jar包(war包或其它形式的包)布署到本地maven倉庫,但沒有布署到遠(yuǎn)程maven私服倉庫
擴(kuò)展:將本地jar部署到本地maven倉庫,示例
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=12.0.1.2 -Dpackaging=jar -Dfile=E:Javaojdbc7.jar
命令注解:
mvn install:install-file-Dfile=jar包存放的位置-DgroupId=pom文件里的groupId-DartifactId=pom文件里的artifactId-Dversion=pom文件里的version-Dpackaging=jar
3. mvn clean deploy
依次執(zhí)行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9個(gè)階段deploy命令完成了項(xiàng)目編譯、單元測試、打包功能,同時(shí)把打好的可執(zhí)行jar包(war包或其它形式的包)布署到本地maven倉庫和遠(yuǎn)程maven私服倉庫
無論部署到私服還是公有倉庫,都需要在項(xiàng)目中配置好
三、常見問題
1. mvn clean install 和 mvn install 的區(qū)別
根據(jù)maven在執(zhí)行一個(gè)生命周期命令時(shí),理論上講,不做mvn install 得到的jar包應(yīng)該是最新的,除非使用其他方式修改jar包的內(nèi)容,但沒有修改源代碼平時(shí)可以使用mvn install ,不使用clean會(huì)節(jié)省時(shí)間,但是最保險(xiǎn)的方式還是mvn clean install,這樣可以生成最新的jar包或者其他包
2. maven兩種跳過單元測試方法的區(qū)別
# 推薦mvn package -Dmaven.test.skip=true
不但跳過了單元測試的運(yùn)行,同時(shí)也跳過了測試代碼的編譯
mvn package -DskipTests
跳過單元測試,但是會(huì)繼續(xù)編譯。如果沒時(shí)間修改單元測試的bug,或者單元測試編譯錯(cuò)誤,則使用第一種,不要使用第二種
無論風(fēng)雨,和自己一決勝負(fù)吧!盤它