maven的下載與安裝
maven是用於java的自動化構建工具。
-
1、下載: http://maven.apache.org/download.cgi
- 下載maven包,比如 apache-maven-3.6.1-bin.zip
- 解壓maven包至任意目標盤,得到的解壓包為 apache-maven-3.6.1
-
2、配置(需提前裝好jdk)
- 在電腦中配置以下環境變量
M2_HOME D:\apache-maven-3.6.1
path ;D:\apache-maven-3.6.1\bin
-
3、測試是否安裝成功
- 在cmd控制台輸入:mvn -v,然后回車,結果如下:
- 在cmd控制台輸入:mvn -v,然后回車,結果如下:
-
4、maven常用命令
- mvn compile
- mvn clean
- mvn test-compile
- mvn test
- mvn package
- mvn install
- mvn site
-
5、打包jar到本地倉庫(即向maven本地倉庫安裝jar包)
mvn install:install-file -DgroupId=imsdriver(jar包的groupId) -DartifactId=imsdriver(jar包的artifactId) -Dversion=1.0(jar的版本號) -Dpackaging=jar -Dfile=D:\jar\imsdriver.jar(jar包的具體路徑)
例如,安裝jar包lucene-analyzers-3.6.2.jar到當前目錄,首先進入到jar包所在位置,然后使用命令:
mvn install:install-file -DgroupId=org.apache.lucene -DartifactId=lucene-analyzers-common -Dversion=3.6.2 -Dpackaging=jar -Dfile=lucene-analyzers-3.6.2.jar
-
6、
mvn archetype:generate
#這個指令可以生成基本的maven工程的骨架
-
7、
mvn compile
#這個指令的作用是編譯源碼(即main目錄下的文件,生成class文件),進入剛才創建的maven工程的第一層目錄使用該指令,執行效果如下:
-
8、
mvn test-compile
#這個指令的作用是編譯測試代碼(即test目錄下的文件),直接在maven工程的第一層執行該指令,執行效果如下:
-
9、
mvn test
# 運行應用程序中的單元測試,同上執行,執行效果如下:
-
10、
mvn site
# 生成項目相關信息(如,插件報告,依賴報告,概要版本,環境及版本信息等)
-
11、
mvn package
#該指令的作用是生成 jar 文件(打包當前項目成jar包)
-
12、
mvn install
#在本地maven倉庫中安裝 jar 文件
-
13、
mvn -Dmaven.test.skip=true
#忽略測試文檔編譯 -
14、
mvn clean
#清除target目錄中的內容(會刪除target目錄及里面的所有內容),執行效果如下:
實際使用
1、與clean結合
mvn clean compile #編譯java代碼
mvn clean package #打包,打包當前項目成jar包
mvn clean test #進行單元測試代碼執行
mvn clean deploy # 部署到版本倉庫
mvn clean install # 安裝到本地maven倉庫中
mvn clean package -Dmaven.test.skip=true 跳過test打包
2、maven測試由插件maven-surefire-plngin支持。在約定大於配置的情況下,maven默認會去src/test/java中執行如下格式的文件Testxyz.java或者XyzTest.java。也就是以Test開頭或者以Test結尾的文件。
- 做單元測試時可以使用如下命令行:
mvn -Dtest=XyzTest test
- 假如需要測試多個文件時,可以使用逗號或者星號進行指定,使用如下格式的命令行:
mvn -Dtest=Xyz1, Xyz2, Xyz3 test
mvn -Dtest=Xyz* test
- 假如需要測試測試類中的方法,maven-surefire-plugin提供一個符號#,通過指定"[測試類]#[測試方法]",然后執行命令
mvn -Dtest=ClasName#testMethod test
- 也支持使用符號*,以類似正則表達式的形式匹配所有相關的方法,命令是
mvn -Dtest=ClassName#test* test
3、對測試代碼打包
- 1、在需要打包程序的pom.xml文件中配置打包信息,比如
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>
./src/main/resources/testng.xml
</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
<suiteXmlFile>
中的./src/main/resources/testng.xml 這個為執行程序的文件所在路徑(相對於pom文件)
-
2、在maven工程目錄(即pom文件所在的目錄)下執行打包命令:
mvn clean package
,即會將程序打包成jar包 -
3、或者,也可以用maven自帶的工具打包,如下
- 先點擊clean,然后點擊package,即完成打包
4、對接口開發代碼(spring boot代碼)打包
- 1、在需要打包程序的pom.xml文件中配置打包信息,如下
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.course.Application</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<extdirs>${project.basedir}/lib</extdirs>
</compilerArguments>
</configuration>
</plugin>
</plugins>
</build>
若原有的pom文件中已有 <build> <plugins>
標簽,則后續直接在<plugins>
后面寫<plugin>
部分即可。
- 其中
<mainClass>com.course.Application</mainClass>
這里寫入口類(啟動類)程序,包含完整的包名;其他的都是springboot框架代碼打包的固定寫法。
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
這里分別是jdk的版本和打包時用的字符編碼。
-
<extdirs>${project.basedir}/lib</extdirs>
這里是指保存程序類的目錄,是固定不變的。 -
2、執行
mvn clean package
命令打包
- 打包后,會把程序中用到的所有依賴包也都打包到jar文件中了,所以最終得到的jar包會比較大。
- 3、打包完后,運行jar包命令為:java –jar jar包.jar
- 用該命令運行的jar包,與在編輯器中運行啟動該工程應用程序效果一樣。