2.maven常用命令和生命週期(慕課網)
一.maven專案工程demo
1.pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion><!--maven的版本號--> <groupId>com.steven.maven</groupId><!--專案的包名--> <artifactId>demo</artifactId><!--專案的模組名(專案名)--> <version>1.0-SNAPSHOT</version><!--快照版本--> <packaging>war</packaging><!--打包方式--> <dependencies> <!--使用Junit4(註解方式執行)--> <dependency> <groupId>junit</groupId><!--模組所屬組織--> <artifactId>junit</artifactId><!--引入模組名稱--> <version>4.11</version><!--版本號--> <scope>test</scope><!--管理依賴的部署--> </dependency> </dependencies> </project>
2.HelloWorld類
package com.steven.maven;
public class HelloWorld {
public String hello(){
return "hello world!";
}
}
3.HelloWorld測試類
import com.steven.maven.HelloWorld; import org.junit.Assert; import org.junit.Test; public class HelloWorldTest { @Test public void testHello(){ Assert.assertEquals("hello world!",new HelloWorld().hello()); } }
二.maven常用命令
1.檢查maven是否安裝成功:mvn -v
2.編譯命令:mvn compile
3.測試命令:mvn test
4.打包命令:mvn package
5.安裝命令,將專案釋出到本地倉庫中:mvn install
在本地倉庫的相應目錄下可以找到打的jar包
需求:新建一個名為demo1的maven專案,在專案中引用demo.jar中HelloWorld類的hello方法。
1.引入依賴
<dependencies> <dependency> <groupId>com.steven.maven</groupId><!--專案的包名--> <artifactId>demo</artifactId><!--專案的模組名(專案名)--> <version>1.0-SNAPSHOT</version><!--快照版本--> </dependency> </dependencies>
2.原始碼
package com.steven.maven1;
import com.steven.maven.HelloWorld;
public class Speak {
public String hi(){
return new HelloWorld().hello();
}
}
三.生命週期
maven生命週期包括清理、編譯、測試、打包、整合測試、驗證、部署等。
1.maven三套獨立的生命週期
(1).clean 清理專案
• pre-clean 執行清理前的工作
• clean 清理上一次構建生成的所有檔案
• post-clean 執行清理後的檔案
(2).default 構建專案(最核心)
• compile test package install
(3).site 生成專案站點
• pre-site 在生成專案站點前要完成的工作
• site 生成專案的站點文件
• post-site 在生成專案站點後要完成的工作
• site-deploy 釋出生成的站點到伺服器上
2.maven完整的生命週期
• validate
• generate-sources
• process-sources
• generate-resources
• process-resources 複製並處理資原始檔,至目標目錄,準備打包。
• compile 編譯專案的原始碼。
• process-classes
• generate-test-sources
• process-test-sources
• generate-test-resources
• process-test-resources 複製並處理資原始檔,至目標測試目錄。
• test-compile 編譯測試原始碼。
• process-test-classes
• test 使用合適的單元測試框架執行測試。這些測試程式碼不會被打包或部署。
• prepare-package
• package 接受編譯好的程式碼,打包成可釋出的格式,如 JAR 。
• pre-integration-test
• integration-test
• post-integration-test
• verify
• install 將包安裝至本地倉庫,以讓其它專案依賴。
• deploy 將最終的包複製到遠端的倉庫,以讓其它開發人員與專案共享。
注意:執行一個生命週期的命令會也會執行前一個週期的命令。