自定义构建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 应用程序的构建和部署过程。该插件提供了多种功能,包括重新打包、运行、启动和停止等。 重新打包 ----------...
Eclipse作为流行的Java集成开发环境,为了方便开发者使用Maven,提供了Maven插件。本篇文章将详细解析如何在Eclipse中离线安装Maven插件,同时提供内附的Maven插件包,以解决在线安装过程中的速度问题和可能遇到的...
**MyEclipse 6.5 Maven插件详解** 在软件开发过程中,MyEclipse作为一款强大的Java集成开发环境,提供了对多种技术的支持,包括但不限于Java、JSP、Servlet、Struts、Spring等。而在Java企业级开发中,Maven作为...
** Maven 插件压缩包详解 ** Maven 是一个强大的项目管理工具,广泛应用于Java开发领域,它通过一套规范化的构建过程,使得项目的构建、依赖管理和部署变得更加简单。Maven 插件是 Maven 生态系统的重要组成部分,...
**Maven POM配置详解** POM(Project Object Model)是Apache Maven的核心概念,它是一个项目对象模型,用于描述一个Maven项目的所有相关信息。POM是通过XML格式编写的,并且通常命名为`pom.xml`,位于项目根目录下...
### Eclipse安装Maven插件详解 #### 一、前言 在Java开发领域,Eclipse作为一款广受欢迎的集成开发环境(IDE),提供了强大的编辑、调试及构建功能。Maven作为一个自动化构建工具,能帮助开发者简化项目管理流程,...
### Maven基本命令详解 Maven 是一款非常强大的 Java 项目构建工具,它通过一系列的预定义生命周期和插件,简化了项目的构建、依赖管理和部署等工作。本文将对 Maven 的一些常用基本命令进行详细介绍。 #### 1. ...
3. **卸载MyEclipse内置Maven插件**:首先需要进入Help -> MyEclipse Configuration Center -> Software,找到MavenSupport for MyEclipse插件并选择remove,然后点击应用按钮执行更新操作。 4. **添加m2e插件**:...
### Maven配置超级详解 #### 一、概述 Maven 是一个项目管理和理解工具,它能够帮助开发者自动构建项目,管理依赖关系,以及执行各种构建任务。...理解和掌握这些配置项对于高效地使用Maven进行项目管理非常重要。
### Maven插件安装与使用详解 #### 一、Maven插件概述 Maven是一款流行的构建工具,它能够帮助开发者自动化构建过程中的许多任务,包括编译、测试、打包、部署等。Maven插件是Maven的核心组成部分之一,通过这些...
** Maven仓库插件详解 ** Maven仓库插件是Apache Maven项目的核心组成部分,它负责管理项目的依赖、构建工件并将其部署到指定的仓库。在Java开发领域,Maven已经成为了构建和管理项目的主要工具之一,其强大的依赖...
### Maven安装及Eclipse的Maven插件安装详解 #### Maven安装步骤 1. **下载Maven**: 首先,需要从官方网站或其他可靠来源下载Maven的最新版本。假设这里下载了`apache-maven-3.1.0.zip`。 2. **解压缩**: 将下载...
** Maven插件详解 ** Maven,作为Java项目管理和构建工具,通过定义一套标准的项目结构和生命周期,简化了项目的构建、依赖管理以及文档生成。其中,Maven插件是其核心组成部分,它负责执行特定的构建任务。本文将...
**指定Maven Home Directory**:选择Maven插件的安装目录。 4. **设置项目名称**:输入项目名称并点击Finish完成创建。 2. **项目目录结构** 创建后的Maven Web项目的典型目录结构包括: - `src/main/java`...
**一、Maven插件详解** Maven插件是Maven生态系统的关键组成部分,它们提供了一系列的目标(goals),这些目标可以执行特定的构建任务,如编译源代码、打包、测试、部署等。Maven通过插件系统来扩展其功能,使得...