maven的安裝與使用(運行單元測試和打包等)


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,然后回車,結果如下:
  • 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包,與在編輯器中運行啟動該工程應用程序效果一樣。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM