maven打包相关命令及配置

maven打包相关命令及配置

Posted by fengdi on April 26, 2019

1、maven命令

跳过测试阶段:

mvn package -DskipTests

临时性跳过测试代码的测试、编译:

mvn package -Dmaven.test.skip=true

maven.test.skip同时控制maven-compiler-plugin和maven-surefire-plugin两个插件的行为,即跳过编译,又跳过测试。

指定测试类

mvn test -Dtest=RandomGeneratorTest

以Random开头,Test结尾的测试类

mvn test -Dtest=Random*Test

用逗号分隔指定多个测试用例

mvn test -Dtest=ATest,BTest

指定即使没有任何测试用例也不要报错 test参数必须匹配至少一个测试类,否则会报错并导致构建失败。此时可使用以下配置来指定即使没有任何测试用例也不要报错。

mvn test -Dtest -DfailIfNoTests = false

2、maven配置

2.1、跳过测试类
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.19.1</version>
    <configuration>
        <skipTests>true</skipTests>
        <!-- skip 对应命令行参数为 maven.test.skip -->
        <skip>false</skip>
    </configuration>
</plugin>
2.2、包含指定测试类
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.19.1</version>
    <configuration>
        <includes>
            <include>**/*Tests.java</include>
        </includes>
    </configuration>
</plugin>
2.3、排除指定测试类
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.19.1</version>
    <configuration>
        <excludes>
            <exclude>**/*ServiceTest.java</exclude>
        </excludes>
    </configuration>
</plugin>
2.4、一起打包测试类,供依赖方使用
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.4</version>
    <executions>
        <execution>
            <goals>
                <goal>test-jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>
2.5、打包时将jdk中的jar加进来
<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <encoding>UTF-8</encoding>
        <optimize>true</optimize>  
        <debug>true</debug>  
        <showDeprecation>true</showDeprecation>  
        <showWarnings>false</showWarnings>
        <compilerArguments>
            <verbose />
            <bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath>
        </compilerArguments>
    </configuration>
</plugin>
2.6、打包时将本地环境中指定的文件夹下的所有jar加进来
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.3</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <encoding>UTF-8</encoding>
        <compilerArguments>
            <extdirs>${env.JAVA_HOME}/jre/lib</extdirs>
        </compilerArguments>
    </configuration>
</plugin>
2.7、打包时将项目路径中指定的文件夹下的所有jar加进来
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.3</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <encoding>UTF-8</encoding>
        <compilerArguments>
            <extdirs>${basedir}/src/main/webapp/WEB-INF/lib</extdirs>
        </compilerArguments>
    </configuration>
</plugin>
2.8、打包时配置
<build>
    <!--打包时将resources文件夹下的所有文件打包进来-->
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <!--包含文件夹以及子文件夹下所有资源-->
                <include>**/*.*</include>
            </includes>
        </resource>
    </resources>

    <!--打包时找到主运行类-->
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <mainClass>com.fengdis.MainApplication</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>

注:

  • 两个标签,如果配置多个数据,mac、linux用冒号(:)分隔,而windows用分号(;)分隔。
  • 两个标签,mac、linux用/,windows路径用\。