科技新知

基礎

刪除所有結果,全部重新編譯

mvn clean compile

跑起用Spring boot寫的main class,運行Spring boot context。

mvn spring-boot:run
# or
mvn clean compile spring-boot:run

執行測試用例,預設只會測試test資料夾下以某些命名規則的class(例如class名以Tests或Test結尾的class,其他命名規則筆者未有能力一一驗證)

mvn test# or
mvn clean compile test

多Profile、多組件、多測試

使用-P指定編譯時的選用pom.xml中的project.profiles.profile參數。也可以用此來傳遞到spring profile,使得編譯後的spring war預設選擇特定profile。

mvn clean compile -PmvnProfile
# or
mvn clean compile spring-boot:run -PmvnProfile

使用-pl限定mvn指令只對某個子組件生效,但有時候子組件之間也有引用關係,所以需要再額外加上-am參數(--also-make)

mvn clean compile spring-boot:run -pl SUBMODULE_NAME -am

使用-Dtest=限定只執行某個class的測試用例,或單個測試函數。(可以無視class名的命名規則)

mvn test -Dtest=TEST_CLASS_NAME
# or
mvn test -Dtest=TEST_CLASS_NAME#TES_METHOD_NAME

若屬於多組件情況下,其他子模組找不到同樣名稱的測試,會測試失敗。需要再加上-Dsurefire.failIfNoSpecifiedTests=false

mvn test -pl SUBMODULE_NAME -am -Dtest=TEST_CLASS_NAME -Dsurefire.failIfNoSpecifiedTests=false# or
mvn test -pl SUBMODULE_NAME -am -Dtest=TEST_CLASS_NAME#TES_METHOD_NAME -Dsurefire.failIfNoSpecifiedTests=false

打包

在本機電腦中,把java變成jar或者war。通常用於自行發佈的環境中。

mvn package

有時特定Profile沒法成功執行測試用例,或者你認為有些測試問題不影響使用,需要跳過package中的test。

mvn package -Dmaven.test.skip=true# won't compile test folder
mvn package -DskipTests=true# compile, but won't run

例外情況

強行把一個第三方jar,種到本機電腦中的.m2/repository

# copy from https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html
mvn install:install-file -Dfile= -DgroupId= -DartifactId= -Dversio

馬交野


哪吒之魔童鬧海
破.地獄 加長版
貓貓的奇幻漂流
IMAX with Laser MINECRAFT:我的世界大電影 英語版
快樂到死(4K修復版)
MX4D MINECRAFT:我的世界大電影 英語版
4DX  英語版  MINECRAFT:我的世界大電影
英語版  MINECRAFT:我的世界大電影
4DX    MINECRAFT:我的世界大電影
MINECRAFT:我的世界大電影
劇場版 世界計畫 崩壞的世界與無法歌唱的初音未來
MINECRAFT :我的世界大電影
SEVENTEEN RIGHT HERE WORLD TOUR IN CINEMAS 字幕版
4DX  SEVENTEEN RIGHT HERE WORLD TOUR IN CINEMAS
PUI PUI 天竺鼠車車 電影版 MOLMAX
愛情咀咀咒
摘星廚神:巴黎夢
你的顏色
摘星廚神.巴黎夢
穿越時空の初吻
贖夢
SEVENTEEN RIGHT HERE WORLD TOUR IN CINEMAS
迪士尼《白雪公主》
白雪公主
高空殺機
無痛俠
猴
門逃
4DX  哪吒之魔童鬧海
哪吒之魔童鬧海
破.地獄 加長版