zoukankan      html  css  js  c++  java
  • maven pom.xml几个特殊的插件

    1. surefire插件 

    Maven Surefire 插件有一个 test 目标,该目标被绑定在了 test 阶段。 
    test 目标执行项目中所有能在 src/test/java 找到的并且文件名与 **/Test*.java, **/*Test.java 匹配的所有单元测试 ,
    在 Maven Surefire 插件执行 JUnit 测试的时候,它同时也在 /target/surefire-reports 
    目录下生成 XML 和常规文本报告。 
    如果你的测试失败了,你可以去查看这个目录,里面有你单元测试生成的异常堆栈信息和错误信息。
    当Maven 遇到一个测试失败,它默认的行为是停止当前的构建。 如果你希望继续构建项目,即使 Surefire 插件
    遇到了失败的单元测试,你就需要设置 Surefire 的testFailureIgnore 这个配置属性为 true。
     
    [java] view plain copy
     
    1. <project>  
    2.     [...]  
    3.     <build>  
    4.         <plugins>  
    5.             <plugin>  
    6.                 <groupId>org.apache.maven.plugins</groupId>  
    7.                 <artifactId>maven-surefire-plugin</artifactId>  
    8.                 <configuration>  
    9.                     <testFailureIgnore>true</testFailureIgnore>  
    10.                 </configuration>  
    11.             </plugin>  
    12.         </plugins>  
    13.     </build>  
    14.     [...]  
    15. </project>  
    这个表达式可以从命令行通过 -D 参数设置。mvn test -Dmaven.test.failure.ignore=true
    Maven 提供了跳过单元测试的能力,只需要使用 Surefire 插件的 skip 参数。 在命令行,只要简单的给任何目标添加
    maven.test.skip 属性就能跳过测试:mvn install -Dmaven.test.skip=true
    另一种配置 Maven 跳过单元测试的方法是给你项目的 pom.xml 添加这个配置
    [java] view plain copy
     
    1. <project>  
    2.     [...]  
    3.     <build>  
    4.         <plugins>  
    5.             <plugin>  
    6.                 <groupId>org.apache.maven.plugins</groupId>  
    7.                 <artifactId>maven-surefire-plugin</artifactId>  
    8.                 <configuration>  
    9.                     <skip>true</skip>  
    10.                 </configuration>  
    11.             </plugin>  
    12.         </plugins>  
    13.     </build>  
    14.     [...]  
    15. </project>  

    2. assembly插件

    Maven Assembly 插件是一个用来创建你应用程序特有分发包的插件。 你可以使用 Maven Assembly 插件

    以你希望的任何形式来装配输出,只需定义一个自定义的装配描述符,即可生成一个可分发的JAR文件,该文件包含

    了项目的二进制文件和所有的依赖。

    要配置 Maven Assembly 插件, 需要在 pom.xml 中的build 配置中添加如下的 plugin 配置。如下图所示

    [java] view plain copy
     
    1. <project>  
    2.     [...]  
    3.     <build>  
    4.         <plugins>  
    5.             <plugin>  
    6.                 <artifactId>maven-assembly-plugin</artifactId>  
    7.                 <configuration>  
    8.                     <descriptorRefs>  
    9.                         <descriptorRef>jar-with-dependencies</descriptorRef>  
    10.                     </descriptorRefs>  
    11.                 </configuration>  
    12.             </plugin>  
    13.         </plugins>  
    14.     </build>  
    15.     [...]  
    16. </project>  

    添加好这些配置以后,你可以通过运行 mvn assembly:assembly来构建这个装配。将工程依赖的jar包和工程都打成一个jar打包

    在 target/***-1.0-jar-with-dependencies.jar 装配好之后, 我们可以在命令行重新运行 Main 类

    Java -cp **-1.0-jar-with-dependencies.jar *.*.Main

    3. compiler插件

    用于编译源代码,默认在compile阶段被调用。两个goal,compiler:compile/compiler:testCompile

    windows平台默认使用GBK编码,如果工程编码为utf8,也需要在compiler插件中指出,否则按GBK编码,也会出问题

    [java] view plain copy
     
    1. <plugin>  
    2.     <groupId>org.apache.maven.plugins</groupId>  
    3.     <artifactId>maven-compiler-plugin</artifactId>  
    4.     <version>3.3</version>  
    5.     <configuration>  
    6.         <!--源码的Java版本-->  
    7.         <source>1.7</source>  
    8.         <!--运行环境的Java版本-->  
    9.         <target>1.7</target>  
    10.     <encoding>UTF8</encoding>  
    11.     </configuration>  
    12. <executions>
          <execution>
          <id>log4j-plugin-processor</id>
          <goals>
          <goal>compile</goal>
          </goals>
                <phase>process-classes</phase>
                <configuration>
                     <proc>only</proc>
                     <annotationProcessors>
                          <annotationProcessor>org.apache.logging.log4j.core.config.plugins.processor.PluginProcessor</annotationProcessor>
                    </annotationProcessors>
                </configuration>
          </execution>
      </executions>

    13. </plugin>  

    4、Resource插件

    [java] view plain copy
     
    1. <filters>  
    2.             <filter>${user.home}/asssd.properties</filter>  
    3.         </filters>  
    4.         <resources>  
    5.             <resource>  
    6.                 <directory>src/main/resources</directory>  
    7.                 <filtering>true</filtering>  
    8.                 <includes>  
    9.                     <include>**/*</include>  
    10.                 </includes>  
    11.             </resource>  
    12.             <resource>  
    13.                 <directory>src/main/java</directory>  
    14.                 <includes>  
    15.                     <include>**.xml</include>  
    16.                 </includes>  
    17.             </resource>  
    18.         </resources>  
    运行打包命令时,将src/main/resources中的所有文件和src/main/java目录下的所有.xml文件打到jar包中。
    其中filters过滤器的作用是将所有引用文件中的${变量名称},替换成antx.properties文件中的变量值。要使用过滤器时,首先需要设置过滤器:
    <filters>    
           <filter>${user.home}/antx.properties</filter>
    </filters>
    然后再启动过滤器, true需要过滤,false不需要过滤:
    <filtering>true</filtering>
  • 相关阅读:
    Java基础——链表的添加、移除、反转
    Java基础——数组队列的原理和实现
    Java基础——String、StringBuiler、StringBuffer的用法和区别
    Java基础——解决JFrame.setBackground设置无效,mac系统IDEA编译器
    Java基础——文件查找创建删除
    Java基础——Java异常机制
    线性表的操作
    Linux目录及文件系统操作
    Linux用户及文件权限管理
    Linux日志系统
  • 原文地址:https://www.cnblogs.com/boshen-hzb/p/6553072.html
Copyright © 2011-2022 走看看