zoukankan      html  css  js  c++  java
  • 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.1in
    
    • 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:jarimsdriver.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包,与在编辑器中运行启动该工程应用程序效果一样。
  • 相关阅读:
    数据结构与算法-字符串与字符串匹配算法
    操作系统-PV操作的原理和几种常见问题
    操作系统-进程(8)-临界区管理
    利用队列实现逐行打印杨辉三角形的前n行
    操作系统-进程(7)死锁和银行家算法
    计算机网络-网络层(6)ICMP协议
    操作系统-进程(6)管程
    计算机网络-链路层(5)点对点链路控制
    操作系统-进程(5)进程通信机制
    RTSP/RTMP流媒体协议网页无插件直播视频平台浏览器请求地址自带尾缀符解释说明
  • 原文地址:https://www.cnblogs.com/jun-zi/p/12067766.html
Copyright © 2011-2022 走看看