定制 POM
Maven 2 通过该 pom.xml 文件了解您的项目。该文件由 Archetype 按照 NumOps
生成,如清单 8 所示:
清单 8. Archetype 生成的 POM - pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ibm.devworks</groupId>
<artifactId>NumOps</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>Maven Quick Start Archetype</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
|
请注意:在测试阶段中(通过 <scope>
标记),Archetype 如何定义模块的坐标、如何将类型定义为 JAR 归档以及如何将 JUnit 指定为一个依赖项。要为您的新项目定制这个 pom.xml 文件,请参照清单 9 中突出显示的部分,稍作改动。
清单 9. 为 NumOps 项目定制生成的 pom.xml 文件
<project xmlns=http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ibm.devworks</groupId>
<artifactId>NumOps</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>Intro to Maven 2 Example 1</name>
<url>http://www.ibm.com/java</url>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
|
额外的 <build>
标记是必要的,用来覆盖源代码,以达到 Java 代码的水平。默认情况下,采用的是 JDK 1.4,但您的代码使用了泛型,因而需要 JDK 5.0 编译。
编译定制的项目
现在可以使用 mvn compile
命令编译 NumOps
项目。 这个命令使 Maven 2 引擎从构建生命周期一直运行到编译阶段,并执行相应的 mojo。您应该看到构建成功的报告,报告中在目标目录树里创建了三个类文件(如清单 10 所示)。如果这是第一次运行,那会花点时间,因为一些依赖项需要经过 Internet 从中央存储库下载。
清单 10. NumOps 项目中 mvn 编译的输出
[INFO] Scanning for projects...
[INFO] -------------------------------------------------------------------------
---
[INFO] Building Intro to Maven 2 Example 1
[INFO] task-segment: [compile]
[INFO] -------------------------------------------------------------------------
---
[INFO] [resources:resources]
[INFO] Using default encoding to copy filtered resources.
[INFO] [compiler:compile]
Compiling 3 source files to C:\temp\maven\NumOps\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Sat Dec 02 22:52:16 EST 2006
[INFO] Final Memory: 3M/7M
[INFO] ------------------------------------------------------------------------
|
回页首
添加单元测试
项目开发的最佳实践通常要求对所有代码模块进行单元测试。Maven 2 为您创建了一个占位符 AppTest.java 单元测试文件。现在,将文件名改为 NumOpsTest.java,请参照清单 11 中突出显示的部分,对生成的单元测试做出改动。也可以从源代码下载处复制单元测试的源代码(参见 下载)。
清单 11. 为项目添加 NumOpsTest 单元测试
package com.ibm.devworks;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* Unit test for simple App.
*/
public class NumOpsTest
extends TestCase
{
/**
* Create the test case
*
* @param testName name of the test case
*/
public NumOpsTest( String testName )
{
super( testName );
}
...
public void testNumOps()
{
NumOps nops = new NumOps();
assertTrue( nops.size() == 1);
assertTrue(
nops.getOp(0).getDesc().equals("plus"));
assertTrue( nops.getOp(0).op(2,1) == 3);
}
}
|
现在可以使用 mvn test
命令运行所有的 mojo 一直到测试阶段。
Maven 2 编译源码和单元测试。然后运行测试,同时报告成功、失败和错误的数目,如清单 12 所示:
清单 12. 执行 mvn 测试来编译项目和运行单元测试
[INFO] Scanning for projects...
[INFO] -------------------------------------------------------------------------
---
[INFO] Building Intro to Maven 2 Example 1
[INFO] task-segment: [test]
[INFO] -------------------------------------------------------------------------
---
[INFO] [resources:resources]
[INFO] Using default encoding to copy filtered resources.
[INFO] [compiler:compile]
[INFO] Nothing to compile - all classes are up to date
[INFO] [resources:testResources]
[INFO] Using default encoding to copy filtered resources.
[INFO] [compiler:testCompile]
Compiling 1 source file to C:\temp\maven\NumOps\target\test-classes
[INFO] [surefire:test]
[INFO] Surefire report directory: C:\temp\maven\NumOps\target\surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.ibm.devworks.NumOpsTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.031 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2 seconds
[INFO] Finished at: Sat Dec 02 23:04:27 EST 2006
[INFO] Final Memory: 3M/6M
[INFO] ------------------------------------------------------------------------
|
分享到:
相关推荐
将pom的依赖直接粘贴进pom.xml,运行bat文件就可以将jar包一次性下载。需要maven环境
maven2的主要配置pom.xml.pdf .
记录一下自己常用的maven工程的pom.xml配置详解,各个标签详解
maven学习笔记maven学习笔记maven学习笔记
本文主要阐述了maven build是用来干什么的,以及对build标签中各子元素配置的作用
摘要:本文主要讲解是Maven使用过程中一些常用的命令,并配上图片说明,最后还讲了pom.xml文件的一些构造。-D传入属性参数-P使用pom中指定的配置-e显示maven运行出错的信息-o离线执行命令,即不去远程仓库更新包-X...
maven入门,maven环境的搭建以及maven配置到eclipse以及pom.xml文件配置等
nexus2.14.14.zip搭建maven私有仓库工具,linux版。在linux下解压,./bin/nexus start启动,默认情况下,不建议以root用户运行Nexus,可以修改bin/nexus中的配置跳过警告(修改RUN_AS_USER=root),vi bin/nexus,...
Maven的pom.xml配置文件详细配置说明 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=...
maven整合ssm的所有pom! maven整合ssm的所有pom! maven整合ssm的所有pom! maven整合ssm的所有pom! maven整合ssm的所有pom!
该jar包功能,可以在一个properties文件里面定义jdbc.url=${url},在另一个properties文件定义具体的...下载之后,自行安装到本地maven仓库,安装命令参考我另一篇博文。具体pom.xml配置使用可以参考网络其他博文,谢谢
一、Idea关联的maven本地仓库配置...三、3个可单独使用的,maven项目文件pom.xml自定义配置 pom-maven-springboot-CusConfigV1.xml pom-maven-springboot-CusConfigV2.xml pom-maven-spring-CusConfigV1不推荐使用.xml
NULL 博文链接:https://cjhz.iteye.com/blog/1721639
利用maven技术整合ssh框架的pom.xml! 利用maven技术整合ssh框架的pom.xml 利用maven技术整合ssh框架的pom.xml
maven多环境部署pom文件实例,简单实用。
maven项目pom.xml中parent标签的使用
自用maven的jar包整理,没有冲突,可以直接粘贴复制,直接使用
安装maven并配置好后,使用mvn -v查看版本报错:当前目录下缺少pom.xml
maven多模块打包的pom文件,里面包含多个模块的pom文件,没有代码