`

Maven 插件使用详解

 
阅读更多

自定义构建Maven项目,需要包括额外的插件或者配置已存在的插件参数。 
1. maven-compiler-plugin 指定JDK版本和编码方式 
compiler插件能解决2个问题: 

第一: maven 2.1默认使用jdk 1.3来编译,这个版本不支持注解,compiler插件可以指定JDK版本为1.6,解决这个问题。 

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

      <plugins> 

           <plugin> 

              <groupId>org.apache.maven.plugins</groupId> 

              <artifactId>maven-compiler-plugin</artifactId> 

              <configuration> 

                  <source>1.6</source> 

                  <target>1.6</target> 

                  <encoding>UTF8</encoding> 

              </configuration> 

           </plugin> 

      </plugins> 

2. maven-war-plugin 打war包在web子项目中指定 
<plugin> 

           <groupId>org.apache.maven.plugins</groupId> 

           <artifactId>maven-war-plugin</artifactId> 

           <version>2.1-beta-1</version> 

           <configuration> 

              <attachClasses>true</attachClasses> 

           </configuration> 

    </plugin> 

<attachClasses>true</attachClasses> 可以把JAR文件和标准的WAR文件同时安装到Maven仓库中 

3. 单元测试插件 maven-surefire-plugin 
<plugin> 

           <groupId>org.apache.maven.plugins</groupId> 

           <artifactId>maven-surefire-plugin</artifactId> 

           <configuration> 

              <argLine>-Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m</argLine> 

              <excludes> 

                  <exclude>**/TestConstants.java</exclude> 

              </excludes> 

              <forkMode>always</forkMode> 

           </configuration> 

</plugin> 

<argLine>-Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m</argLine>调整JVM(-Xmx1024m)和PermSize(-XX:PermSize=256m -XX:MaxPermSize=256m)内存 

<excludes> 

       <exclude>**/TestConstants.java</exclude> 

</excludes> 

运行测试脚本时不执行TestConstants.java文件 

<forkMode>always</forkMode> 

Maven运行测试用例时,是通过调用maven的surefire插件并fork一个子进程来执行用例的。forkmode属性中指明是要为每个测试创建一个进程,还是所有测试在同一个进程中完成。 

forkMode 可设置值有 “never”, “once”, “always” 和 “pertest”。 

pretest: 每一个测试创建一个新进程,为每个测试创建新的JVM是单独测试的最彻底方式,但也是最慢的,不适合hudson上持续回归 

once:在一个进程中进行所有测试。once为默认设置,在Hudson上持续回归时建议使用默认设置。 

always:在一个进程中并行的运行脚本,Junit4.7以上版本才可以使用,surefire的版本要在2.6以上提供这个功能,其中 threadCount:执行时,指定可分配的线程数量。只和参数parallel配合使用有效。默认:5。 

<forkMode>always</forkMode> 

<parallel>methods</parallel> 

<threadCount>4</threadCount> 

4 .Resource插件 
<filters>    

       <filter>${user.home}/asssd.properties</filter> 

</filters> 

<resources> 

       <resource> 

           <directory>src/main/resources</directory> 

           <filtering>true</filtering> 

           <includes> 

              <include>**/*</include> 

           </includes> 

       </resource> 

       <resource> 

           <directory>src/main/java</directory> 

           <includes> 

              <include>**.xml</include> 

           </includes> 

       </resource> 

</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> 

5、Maven常用命令 
1、运行应用程序中的单元测试:mvn test或mvn test -Dtest=***Test, 其中“***Test”为被测试用例的类名(不需要输入.java) 

         打开控制台,进入测试工程所在目录:D:\workspace-sell\sell-qatest路径;输入mvn test命令后,开始执行sell-qatest中的所有测试脚本,并将信息输出到控制台。 

         如果要单独运行一个测试类里的用例,如 publishAuctionTest.java,则可以运行 mvn test -Dtest=publishAuctionTest 

2、清除目标目录中的生成结果:mvn clean(清除taget文件夹中内容) 

3、在本地repo中安装jar:mvn install。运行命令后工程根目录下生成target文件夹,文件夹内存放jar包,class文件夹等内容。本地仓库repo中生成工程jar包目录。 

4、将工程打包:mvn package。运行命令后工程根目录下生成target文件夹,文件夹内存放jar包,class文件夹等内容。 

5、生成Eclipse项目文件:mvn eclipse:eclipse。运行命令后生成eclipse工程,项目的根目录下产生.project、.classpath文件和target文件夹。将该工程导入到eclipse中:打开eclipse,通过file->import,导入到eclipse中。 

6、清除Eclipse工程:mvn eclipse:clean。.classpath和.project文件会被删除。 

7、在运行install 或package时,测试代码不被执行: 

第一种方法:在cmd运行mvn install 或mvn package 命令后加上-Dmaven.test.skip=true 。 

例如:mvn install -Dmaven.test.skip=true 

第二种方法:在pom.xml文件的maven-surefire-plugin插件中添加参数:<skip>true</skip> 

<plugin> 

<groupId>org.apache.maven.plugins</groupId> 

<artifactId>maven-surefire-plugin</artifactId> 

<inherited>true</inherited> 

<configuration> 

<skip>true</skip> 

</configuration> 

</plugin>

分享到:
评论

相关推荐

    Spring Boot Maven插件使用详解

    Spring Boot Maven 插件使用详解 Spring Boot Maven 插件是一个功能强大的插件,旨在简化 Spring Boot 应用程序的构建和部署过程。该插件提供了多种功能,包括重新打包、运行、启动和停止等。 重新打包 ----------...

    eclipse离线安装maven插件详解(内附maven插件包)

    Eclipse作为流行的Java集成开发环境,为了方便开发者使用Maven,提供了Maven插件。本篇文章将详细解析如何在Eclipse中离线安装Maven插件,同时提供内附的Maven插件包,以解决在线安装过程中的速度问题和可能遇到的...

    Myeclipse6.5的Maven插件

    **MyEclipse 6.5 Maven插件详解** 在软件开发过程中,MyEclipse作为一款强大的Java集成开发环境,提供了对多种技术的支持,包括但不限于Java、JSP、Servlet、Struts、Spring等。而在Java企业级开发中,Maven作为...

    maven插件压缩包

    ** Maven 插件压缩包详解 ** Maven 是一个强大的项目管理工具,广泛应用于Java开发领域,它通过一套规范化的构建过程,使得项目的构建、依赖管理和部署变得更加简单。Maven 插件是 Maven 生态系统的重要组成部分,...

    Maven pom 配置详解

    **Maven POM配置详解** POM(Project Object Model)是Apache Maven的核心概念,它是一个项目对象模型,用于描述一个Maven项目的所有相关信息。POM是通过XML格式编写的,并且通常命名为`pom.xml`,位于项目根目录下...

    Eclipse安装Maven插件

    ### Eclipse安装Maven插件详解 #### 一、前言 在Java开发领域,Eclipse作为一款广受欢迎的集成开发环境(IDE),提供了强大的编辑、调试及构建功能。Maven作为一个自动化构建工具,能帮助开发者简化项目管理流程,...

    maven基本命令详解

    ### Maven基本命令详解 Maven 是一款非常强大的 Java 项目构建工具,它通过一系列的预定义生命周期和插件,简化了项目的构建、依赖管理和部署等工作。本文将对 Maven 的一些常用基本命令进行详细介绍。 #### 1. ...

    Maven安装与MyElipse8.5安装Maven插件

    3. **卸载MyEclipse内置Maven插件**:首先需要进入Help -&gt; MyEclipse Configuration Center -&gt; Software,找到MavenSupport for MyEclipse插件并选择remove,然后点击应用按钮执行更新操作。 4. **添加m2e插件**:...

    maven配置超级详解大全

    ### Maven配置超级详解 #### 一、概述 Maven 是一个项目管理和理解工具,它能够帮助开发者自动构建项目,管理依赖关系,以及执行各种构建任务。...理解和掌握这些配置项对于高效地使用Maven进行项目管理非常重要。

    Maven插件安装使用说明

    ### Maven插件安装与使用详解 #### 一、Maven插件概述 Maven是一款流行的构建工具,它能够帮助开发者自动化构建过程中的许多任务,包括编译、测试、打包、部署等。Maven插件是Maven的核心组成部分之一,通过这些...

    maven仓库插件

    ** Maven仓库插件详解 ** Maven仓库插件是Apache Maven项目的核心组成部分,它负责管理项目的依赖、构建工件并将其部署到指定的仓库。在Java开发领域,Maven已经成为了构建和管理项目的主要工具之一,其强大的依赖...

    maven安装以及eclipse的maven插件安装

    ### Maven安装及Eclipse的Maven插件安装详解 #### Maven安装步骤 1. **下载Maven**: 首先,需要从官方网站或其他可靠来源下载Maven的最新版本。假设这里下载了`apache-maven-3.1.0.zip`。 2. **解压缩**: 将下载...

    maven插件

    ** Maven插件详解 ** Maven,作为Java项目管理和构建工具,通过定义一套标准的项目结构和生命周期,简化了项目的构建、依赖管理以及文档生成。其中,Maven插件是其核心组成部分,它负责执行特定的构建任务。本文将...

    Intellj构建和部署Maven Web项目详解

    **指定Maven Home Directory**:选择Maven插件的安装目录。 4. **设置项目名称**:输入项目名称并点击Finish完成创建。 2. **项目目录结构** 创建后的Maven Web项目的典型目录结构包括: - `src/main/java`...

    maven插件用来分布式集成开发的

    **一、Maven插件详解** Maven插件是Maven生态系统的关键组成部分,它们提供了一系列的目标(goals),这些目标可以执行特定的构建任务,如编译源代码、打包、测试、部署等。Maven通过插件系统来扩展其功能,使得...

Global site tag (gtag.js) - Google Analytics