自定义构建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>
分享到:
相关推荐
Maven是Java开发中的一款强大的构建工具,它简化了项目的构建、依赖管理和生命周期过程。通过配置POM(Project Object Model)文件,Maven可以自动...理解并熟练使用这些命令和插件配置,能极大地提升Java开发的效率。
某些Maven插件支持通过-D参数传递额外的配置信息,如设置WTP版本等。 #### 15. 显示详细日志:`mvn -e` 在调试构建问题时,使用该选项可以使Maven打印出更详细的日志信息。 #### 16. 验证项目状态:`mvn validate...
#### 二、常用Maven命令详解 ##### 1. 创建Java项目 ```sh mvn archetype:create -DgroupId=packageName -DartifactId=projectName ``` **解释:** - `mvn archetype:create`:使用Maven的原型插件创建新项目。 - `...
maven 常用命令集合 Maven 是一个基于项目对象模型(Project Object Model,POM)的项目管理工具,主要用于 Java 项目的构建、测试和部署。Maven 的强大之处在于其提供了一种标准化的方式来构建、测试和部署项目,...
Maven 是一个项目管理和理解工具,它包含了一个项目对象模型 (POM),一组标准集合,一个项目生命周期,一个依赖管理机制,用于运行构建任务的插件集合,以及用来扩展现有功能的插件机制。在实际开发过程中,熟练掌握...
Maven会根据这个文件自动下载所需的依赖,并按照预设的生命周期阶段(如clean, compile, test, package, install, deploy)执行相应的插件目标。 例如,`maven-compiler-plugin`插件用于编译Java源代码,`maven-...
**正文** Maven是Java开发中的一...通过熟练掌握Maven命令和配置,开发者可以高效地管理项目依赖,实现自动化构建,从而提高开发效率。而提供的测试项目则可以帮助我们更好地理解Maven如何与测试集成,确保代码质量。
MVN常用命令 MVN(Maven)是一款基于项目对象模型(POM)的项目管理工具,它可以帮助开发者管理项目的依赖关系、编译、测试、打包和部署。下面是MVN的常用命令: 创建Maven项目 1. 创建Maven的普通Java项目:`mvn...
### Maven安装及Eclipse的Maven插件安装详解 #### Maven安装步骤 1. **下载Maven**: 首先,需要从官方网站或其他可靠来源下载Maven的最新版本。假设这里下载了`apache-maven-3.1.0.zip`。 2. **解压缩**: 将下载...
3. **构建项目**: 使用`mvn compile`进行编译,`mvn test`运行测试,`mvn package`打包项目,`mvn install`将项目安装到本地仓库。 4. **部署项目**: 使用`mvn deploy`可以将项目部署到远程仓库,供其他项目使用。 ...
3. **构建任务**:某些Maven插件或构建目标(例如`mvn site`)会占用大量内存。 4. **系统资源限制**:开发者的机器硬件配置,特别是可用内存容量。 #### 三、解决内存溢出问题的方法 ##### 3.1 Windows环境 在...
在Linux环境下,解压`apache-maven-3.8.5`后,需要将Maven的bin目录添加到PATH环境变量中,以便全局调用`mvn`命令。配置文件`settings.xml`位于`conf`目录下,用于设置本地仓库路径、远程仓库地址以及镜像配置,可以...
- Maven 的生命周期包括清洁(clean)、初始化(initialize)、编译(compile)、测试(test)、打包(package)、验证(verify)、集成测试(integration-test)、部署(install)和站点(site)等阶段。...
3. 插件管理:通过定义在pom.xml的<build><plugins>或节点中,可以配置Maven插件,执行特定的任务。 4. 属性注入:使用`${property_name}`语法在pom.xml中引用属性值,可以在命令行通过`-Dproperty_name=value`指定...
** Maven 常用命令详解 ** Maven 是一个强大的构建工具,主要用于管理 Java 项目的构建、依赖和文档生成。...通过理解并熟练运用这些 Maven 命令和概念,开发者可以更高效地管理 Java 项目,确保构建过程的顺利进行。
- 将Maven插件的`features`和`plugins`目录复制到MyEclipse的`dropins`目录下(例如:`D:/JAVA/MyEclipse/MyEclipse10/dropins/maven`)。 - 创建一个名为`maven.link`的文件,并编辑其内容为`path=D:/JAVA/...
在 Java 开发中,Maven 减轻了构建过程的复杂性,通过统一的构建机制和丰富的插件支持,使得开发者可以更加专注于代码本身。 **一、Maven 的作用** 1. **依赖管理**:Maven 使用中央仓库来存储各种项目依赖,如 ...
例如,常用的`mvn compile`命令用于编译源代码,`mvn test`执行单元测试,`mvn package`将编译后的代码打包成JAR或WAR文件。 2. 依赖管理:Maven的中央仓库包含了大量的开源库,开发者可以通过在POM.xml文件中声明...
三、Maven插件 1. 编译插件(maven-compiler-plugin):负责Java源代码的编译。 2. 打包插件(maven-jar-plugin):将编译后的类打包成JAR文件。 3. 资源插件(maven-resources-plugin):处理项目资源文件,如复制...