一.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 将最終的包複制到遠端的倉庫,以讓其它開發人員與項目共享。
注意:執行一個生命周期的指令會也會執行前一個周期的指令。