初識Maven
Maven作為一個構建工具,不僅幫我們自動化構建,還能抽象構建過程,提供構建任務實現.他跨平臺,對外提供一致的操作接口;
Maven不僅是構建工具,他還是一個依賴管理工具和項目信息管理工具.他還提供了中央倉庫,能幫我們自動下載構件.
使用Maven還能享受一個額外的好處,即Maven對於項目目錄結構、測試用例命名方式等內容都有既定的規則,只要遵循了這些成熟的規則,用戶在項目間切換的時候就免去了額外的學習成本,可以說是約定優於配置.
Maven常用命令
清除產生的項目
mvn clean
編譯源代碼
mvn compile
清除、編譯
mvn clean compile
編譯測試代碼
mvn test-compile
運行測試:
mvn test
打包
mvn package
本地編譯打包、跳過測試
mvn clean package -DskipTests
清理 打包 跳過測試
mvn clean package -DskipTests
清理 安裝 跳過測試
mvn clean install -Dmaven.test.skip=true
想要查看完整的依賴蹤跡,包含那些因為衝突或者其它原因而被拒絕引入的構件,打開 Maven 的調試標記運行 :
mvn install -X
發佈,會將生成的JAR寫到MAVEN外部庫,
mvn clean package deploy -DskipTests
安裝,會發布到MAVEN本地庫
mvn clean package install -DskipTests
-DskipTests,不執行測試用例,但編譯測試用例類生成相應的class文件至target/test-classes下
-Dmaven.test.skip=true,不執行測試用例,也不編譯測試用例類。
下載源碼
mvn dependency:sources
生成一個空的WEB工程
mvn archetype:create -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=1.0.0 -DgroupId=com.cai.test -DartifactId=cai-test
生成API文檔
mvn javadoc:aggregate
生成文檔
mvn javadoc:jar
一體化打包
mvn -U -Dmaven.test.skip=true clean package assembly:assembly
打包,會生成TAR壓縮包
mvn clean assembly:assembly -DskipTests
JETTY執行使用9999端口
mvn jetty:run -Djetty.port=9999
JETTY執行war文件
mvn jetty:run-war
關閉JETTY
mvn jetty:stop
上傳JAR到maven本地庫
mvn install:install-file -Dfile=alipay-sdk-java20161121110022.jar -DgroupId=com.alipay.api -DartifactId=alipay-sdk-java -Dversion=20161121110022 -Dpackaging=jar
只打jar包:
mvn jar:jar
只測試而不編譯,也不測試編譯:
mvn test -skipping compile -skipping test-compile -skipping 的靈活運用,當然也可以用於其他組合命令
查看當前項目已被解析的依賴:
mvn dependency:list
強制檢查更新,由於快照版本的更新策略(一天更新幾次、隔段時間更新一次)存在,如果想強制更新就會用到此命令
mvn clean install-U
顯示版本信息 :
mvn -version/-v
顯示詳細錯誤 信息:
mvn -e
驗證工程是否正確,所有需要的資源是否可用:
mvn validate
在集成測試可以運行的環境中處理和發佈包:
mvn integration-test
運行任何檢查,驗證包是否有效且達到質量標準:
mvn verify
使用 help 插件的 describe 目標來輸出 Maven Help 插件的信息:
mvn help:describe -Dplugin=help
使用Help 插件輸出完整的帶有參數的目標列 :
mvn help:describe -Dplugin=help -Dfull
獲取單個目標的信息,設置 mojo 參數和 plugin 參數。此命令列出了Compiler 插件的compile 目標的所有信息
mvn help:describe -Dplugin=compiler -Dmojo=compile -Dfull
列出所有 Maven Exec 插件可用的目標
mvn help:describe -Dplugin=exec -Dfull
看這個“有效的 (effective)”POM,它暴露了 Maven的默認設置
mvn help:effective-pom
mvn exec命令可以執行項目中的main函數
首先需要編譯java工程:mvn compile 不存在參數的情況下:mvn exec:java -Dexec.mainClass=".Main" 存在參數:mvn exec:java -Dexec.mainClass=".Main" -Dexec.args="arg0 arg1 arg2" 指定運行時庫:mvn exec:java -Dexec.mainClass="***.Main" -Dexec.classpathScope=runtime
打印出已解決依賴的列表
mvn dependency:resolve
打印整個依賴樹
mvn dependency:tree
生成依賴關係文件
mvn dependency:tree > tree.txt
閱讀更多 新猿易碼 的文章