maven实战(二)maven定制一个项目
来源:互联网 发布:手机图文设计软件 编辑:程序博客网 时间:2024/06/06 01:06
定制项目信息
pom.xml 添加组织,法律和开发人员信息:
<licenses> <license> <name>Apache 2</name> <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> <distribution>repo</distribution> <comments>A business-friendly OSS license</comments> </license></licenses><organization> <name>Sonatype</name> <url>http://www.sonatype.com</url></organization><developers> <developer> <id>jason</id> <name>Jason Van Zyl</name> <email>jason@maven.org</email> <url>http://www.sonatype.com</url> <organization>Sonatype</organization> <organizationUrl>http://www.sonatype.com</organizationUrl> <roles> <role>developer</role> </roles> <timezone>-6</timezone> </developer></developers
licenses,organization 和developers 等项目基本描述信息元素是加在dependencies元素之前的。
定制依赖:
pom文件的dependences节点下添加所需的依赖,例如:
<dependencies> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.14</version> </dependency> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>jaxen</groupId> <artifactId>jaxen</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>velocity</groupId> <artifactId>velocity</artifactId> <version>1.5</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency>...</dependencies>
修改pom后,在pom统计目录下运行mvn install讲依赖jar包下载到本地仓库中。
运行javaMain函数程序
mvn exec:java -Dexec.mainClass=org.sonatype.mavenbook.weather.Main
1.Maven Exec 插件:
Exec 插件允许你运行 Java 类和其它脚本。 它不是 Maven 核心插件,但它可以从Codehaus 3 的 Mojo 4 项目得到。想要查看 Exec 插件的完整描述,运行:
$ mvn help:describe -Dplugin=exec -Dfull
这会列出所有 Maven Exec 插件可用的目标。 Help 插件同时也会列出 Exec 插件
的有效参数,如果你想要定制 Exec 插件的行为,传入命令行参数,你应该使用
help:describe 提供的文档作为指南。 虽然Exec 插件很有用,在开发过程中用来运行测试之外,你不应该依赖它来运行你的应用程序。 想要更健壮的解决方案,使用Maven Assembly 插件。
2.浏览你的项目依赖
列出所有项目依赖:
Exec 插件让我们能够在不往 classpath 载入适当的依赖的情况下,运行这个程序。 在任何其它的构建系统能够中,我们必须复制所有程序依赖到类似于 lib/ 的目录,这个目录包含一个 JAR 文件的集合。 那样,我们就必须写一个简单的脚本,在classpath 中包含我们程序的二进制代码和我们的依赖。 只有那样我们才能运行javaorg.sonatype.mavenbook.weather.Main 。 Exec 能做这样的工作是因为 Maven 已经知道如何创建和管理你的 classpath 和你的依赖。
如果你需要找出 classpath 中有什么,你可以使用 Maven Dependency 插件来打印出已解决依赖的列表。
mvn dependency:resolve
列出整个项目的依赖树:
项目的整个依赖树,你可以运行 dependency:tree 目标。
mvn dependency:tree
列出详细maven完整依赖踪迹:
想要查看完整的依赖踪迹,包含那些因为冲突或者其它原因而被拒绝引入的构件,打开 Maven 的调试标记运行:
$ mvn install -X
编写定制单元测试
1.mvn运行测试:
既然你的项目已经有单元测试了,那么让它们运行起来吧。 你不必为了运行单元测试做什么特殊的事情, test 阶段是 Maven 生命周期中常规的一部分。 当你运行 mvnpackage 或者 mvn install 的时候你也运行了测试。 如果你想要运行到 test 阶段为止的所有生命周期阶段,运行 mvn test 。
mvn test
从命令行运行 mvn test 使 Maven 执行到 test 阶段为止的所有生命周期阶段。
Maven Surefire 插件有一个 test 目标,该目标被绑定在了 test 阶段。 test 目
标执行项目中所有能在 src/test/java 找到的并且文件名与 /Test*.java , /
Test.java 和 */*TestCase.java 匹配的所有单元测试。 在本例中,你能看到
Surefire 插件的 test 目标执行了 WeatherFormatterTest 和 YahooParserTest 。
在 Maven Surefire 插件执行 JUnit 测试的时候,它同时也在basePath/target/surefire-reports 目录下生成 XML 和常规文本报告。 如果你的测试失败了,你可以去查看这个目录,里面有你单元测试生成的异常堆栈信息和错误信息。
2.忽略单元测试失败:
当Maven 遇到一个测试失败,它默认的行为是停止当前的构建。 如果你希望继续构建项目,即使 Surefire 插件遇到了失败的单元测试,你就需要设置 Surefire 的testFailureIgnore 这个配置属性为 true :
<project>[...] <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <testFailureIgnore>true</testFailureIgnore> </configuration> </plugin> </plugins> </build> [...]</project>
或者通过maven命令设置忽略测试失败:
mvn test -Dmaven.test.failure.ignore=true
3.跳过单元测试
可能正工作在一个遗留系统上面,这个系统有一系列的失败的单元测试,你可能仅仅想要生成一个 JAR 而不是去修复所有的单元测试。 Maven 提供了跳过单元测试的能力,只需要使用 Surefire 插件的 skip 参数。 在命令行,只要简单的给任何目标添加maven.test.skip 属性就能跳过测试:
mvn install -Dmaven.test.skip=true
或者在项目pom文件中配置插件skip属性来跳过单元测试:
<project>[...] <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> </plugins> </build>[...]</project>
- maven实战(二)maven定制一个项目
- 【Maven权威指南】Maven实战篇:定制一个Maven项目
- Maven实战(二)构建简单Maven项目
- Maven实战(二)构建简单Maven项目
- Maven实战(二)构建简单Maven项目
- Maven实战(二)构建简单Maven项目
- Maven实战(二)构建简单Maven项目
- Maven实战(二)构建简单Maven项目
- Maven实战(二)构建简单Maven项目
- Maven实战(二)构建简单Maven项目
- Maven实战(二)构建简单Maven项目
- Maven-Eclipse搭建一个maven项目(方法二)
- Maven权威指南-----4、定制一个Maven项目
- Maven学习系列--05定制一个Maven项目
- maven实战(二)maven的依赖
- [Maven实战](3)Maven创建项目
- 使用Maven来管理项目-使用Maven来创建一个Maven项目(二)
- Maven项目管理实战(二)--pom.xml
- Androd基础----1
- Android获取View的宽高为0问题的解决方法
- 华南理工大学-软件工程-复试上机-数据库题目-UI设计
- mysql
- 敌兵布阵 (线段树求和)
- maven实战(二)maven定制一个项目
- OpenCV3.2 Cmake生成 VS2015工程文件时出现问题解决方式
- Action接口和ActionSupport基类
- 通过virtualenv快速搭建Python虚拟环境Windows + ubuntu
- leanCloud使用的时候心得
- ext.form.field.Date
- X5之控制台
- 深入理解JAVA序列化
- hibernate的各种查询