-
maven
常用命令
注:需要在Maven
項(xiàng)目的根目錄下執(zhí)行
命令 | 描述 |
---|---|
mvn -v (mvn -version ) |
顯示版本信息 |
mvn clean |
清理項(xiàng)目生產(chǎn)的臨時(shí)文件趣避,一般是模塊下的 target 目錄 |
mvn compile |
編譯源代碼智蝠,一般編譯模塊下的 src/main/java 目錄 |
mvn package |
項(xiàng)目打包工具聊浅,會(huì)在模塊下的 target 目錄生成 jar 或 war 等文件 |
mvn test |
測(cè)試命令吏颖,或執(zhí)行 src/test/java/ 下 junit 的測(cè)試用例 |
mvn install |
將打包的 jar/war 文件復(fù)制到本地倉(cāng)庫(kù)中输莺,供其他模塊使用 |
mvn deploy |
將打包的文件發(fā)布到遠(yuǎn)程參考甫男,提供其他人員進(jìn)行下載依賴(lài) |
mvn site |
生成項(xiàng)目相關(guān)信息的網(wǎng)站 |
mvn eclipse:eclipse |
將項(xiàng)目轉(zhuǎn)化為 Eclipse 項(xiàng)目 |
mvn dependency:tree |
打印出項(xiàng)目的整個(gè)依賴(lài)樹(shù) |
mvn archetype:generate |
創(chuàng)建 Maven 的普通 java 項(xiàng)目 |
mvn tomcat7:run |
在 tomcat 容器中運(yùn)行 web 應(yīng)用 |
mvn jetty:run |
調(diào)用 Jetty 插件的 Run 目標(biāo)在 Jetty Servlet 容器中啟動(dòng) web 應(yīng)用 |
-
Maven
參數(shù)
參數(shù) | 作用 |
---|---|
-D |
傳入屬性參數(shù) |
-P |
使用 pom 中指定的配置 |
-e |
顯示 maven 運(yùn)行出錯(cuò)的信息 |
-o |
離線執(zhí)行命令攘已,即不去遠(yuǎn)程倉(cāng)庫(kù)更新包 |
-X |
顯示 maven 允許的 debug 信息 |
-U |
強(qiáng)制去遠(yuǎn)程參考更新 snapshot 包 |
示例:
1亡资、創(chuàng)建Maven
的普通java
項(xiàng)目:
mvn archetype:create -DgroupId=packageName -DartifactId=projectName
2澜共、創(chuàng)建Maven
的Web
項(xiàng)目:
mvn archetype:create -DgroupId=packageName -DartifactId=webappName-DarchetypeArtifactId=maven-archetype-webapp
3、打包時(shí)跳過(guò)單元測(cè)試
mvn package -Dmaven.test.skip=true
4锥腻、部署項(xiàng)目時(shí)跳過(guò)單元測(cè)試
mvn deploy -Dmaven.test.skip=true
一般項(xiàng)目開(kāi)發(fā)需要多個(gè)環(huán)境:開(kāi)發(fā)咳胃、測(cè)試、預(yù)發(fā)旷太、正式4個(gè)環(huán)境展懈,可在
pom.xml
中進(jìn)行配置
<profiles>
<!-- 開(kāi)發(fā)環(huán)境 -->
<profile>
<id>dev</id>
<properties>
<current.env>dev</current.env>
</properties>
<activation>
<!--指定該環(huán)境為默認(rèn)配置-->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- 測(cè)試環(huán)境 -->
<profile>
<id>qa</id>
<properties>
<current.env>qa</current.env>
</properties>
</profile>
<!-- 預(yù)發(fā) -->
<profile>
<id>pre</id>
<properties>
<current.env>pre</current.env>
</properties>
</profile>
<!-- 正式 -->
<profile>
<id>prod</id>
<properties>
<current.env>prod</current.env>
</properties>
</profile>
</profiles>
<build>
<filters>
<filter>config/${env}.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
...
</build>
-
profiles
定義了各個(gè)環(huán)境的變量ID
,filters
中定義了變量配置文件的地址供璧,其中地址中的環(huán)境變量就是上面profile
中定義的值存崖,resources
中是定義哪些目錄下的文件會(huì)被配置文件中定義的變量替換 - 通過(guò)
maven
可以實(shí)現(xiàn)按不同環(huán)境打包部署:
mvn package -Pdev -Dmaven.test.skip=true
打包本地環(huán)境,并跳過(guò)單元測(cè)試