测试开发

《JUnit实战》第10章 从Maven2中运行JUnit 测试(续2)

10.2 建立一个 Maven项目

到现在为止,你已经看到了Ant 与 Maven 之间的不同,接下来我们要转向另一个话题,开始使用Maven构建我们的项目。但是,我们首先要了解安装过程。

安装 Maven

    安装Maven 的过程主要包括以下3个步骤。

1 从 http://maven.apache.org/下载最新版本的Maven发布包,并在选定的目录(例如,Windows系统下的C:\maven或者UNIX系统下的/opt/maven)中对其进行解压缩。

2 定义一个环境变量M2_HOME,指向Maven的安装目录。

3 将M2_HOME \bin(如果在UNIX系统中则是M2_HOME/bin)添加到你的环境变量 PATH中,这样你就能在任何目录下输入mVn。

现在你已经为使用 Maven做好了准备。当你第一次执行一个插件时,要确保网络连接是打开的,因为Maven将会自动从网上下载这个插件所需要的所有第三方JAR。

现在转到c:\junitbook2\目录下,这是我们的工作目录,在这里我们将要建立多个Maven示例。在命令行中输入以下内容:

mvn archetype:create -DgroupTd-ecom.manning.junitbook
-DartifactTd=maven -sampling -DarchetypeArtifactid=maven-artifact-mojo

在你按下Enter键之后等待合适的工件下载时,你会看到一个命名为maven-sampling的目录被创建。如果你查看这个目录的内部,就会发现这个目录的目录结构已被创建,如图10.1所示。

这里发生了什么呢?我们从命令行调用了maven-archetype-plugin插件并且要求它使用指定的参数从头开始创建一个新的项目。于是,这个 Maven插件就遵循目录结构的约定使用一个新的目录结构创建了一个新项目。而且,它使用main 方法和相应的AppTest.java文件创建了一个简单的 App.java类,其中 AppTest.java是应用程序的一个单元测试。现在,在看到这个目录结构之后,最有可能发生的是,你会对哪些文件位于src/main/java目录中和哪些文件位于src/test/java目录中非常熟悉。

image.png

图10.1 创建项目之后的目录结构

但是,它甚至会变得更加自动化。Maven插件也为用户生成了一个 pom.xml 文件。让我们来打开这个描述文件,看看其中有什么不同之处,如代码10.4所示。

image.png

这就是项目的构建描述文件,它以一个带有合适的命名空间的全局性<project>标签作为开始,在命名空间内部我们列出了所有的组件。

modelversion——被使用的pom的模块版本。目前唯一支持的版本是4.0.0。

groupId——项目的组织ID。注意这是当我们调用 Maven时在命令行中提供的值。groupId的作用类似于文件系统中的Java打包机制;它将来自一个组织、公司、人群等的不同项目组织在一起。

artifactId———项目的工件ID。这里的这个值也是我们在命令行中指定的值。artifactId代表了项目已知的名称。

packaging——项目将使用什么类型的工件打包?虽然这里我们指定了jar,但是它也可以是 pom、ear或者war.

version——项目(或者项目的工件)的当前版本。注意“-SNAPSHOT”字样的结尾,这个结尾表示这个工件仍处于开发模式,还没有被发布。

dependencies——这个部分用来列出依赖库。

现在我们已经有了项目的描述文件,让我们对其进行一下优化,如代码10.5所示。首先,我们需要修改JUnit依赖库的版本,因为我们现在使用的是4.6版本,而插件生成的版本是3.8.1。然后,我们可以在pom.xml 文件中添加一些其他的详细信息,如添加developers部分。这些信息不仅使得pom.xml 文件更加详尽,而且在我们构建站点时它也会被添加上。

image.png

代码10.6延续了上一段代码,显示了organization、description和inceptionYear元素。

image.png

现在让我们继续前进,开始着手开发软件。即使我们想使用我们最喜欢的Java IDE:Eclipse或者 IntelliJ IDEA,那也完全没问题——Maven提供了额外的插件,能够将项目导入到我们最喜欢的IDE 中。例如,这里我们使用Eclipse来向你展示这个导入过程是如何发生的。再次打开一个终端,进入到保存项目描述文件(pom.xml)的目录中。一旦进入后,就可以输入以下代码并按下 Enter 键:

mvn eclipse:eclipse-Ddownloadsources=true

这会调用到maven-eclipse-plugin,下载必要的工件之后,maven-eclipse-plugin将会生成两个文件(.project和.classpath),Eclipse需要通过这两个文件来识别你的项目为一个 Eclipse项目。我们在命令行中指定的downloadSources参数是可选参数。通过使用该参数,我们可以指示该插件下载源代码附件。你也可以通过在命令行中将可选参数downloadJavadocs设置为 true来下载 Javadoc附件。现在你能够把项目导人到Eclipse并测试它;你会注意到,在 pom.xml文件中列出的所有依赖库当前都被添加到你的buildpath中了。非常神奇,是不是?

为了继续下面的讨论,让我们生成一些项目的文档。但是,等一下,我们应该如何做到这一点呢?我们没有任何可以由此生成文档的文件。这是 Maven另一个强大的功能——我们只用极少的配置和描述信息,就能生成一个功能全面的网站骨架。在pom.xml文件所在的目录的命令行中输入以下命令:

mvn site

然后,Maven就会开始下载它的插件,并且在成功安装这些插件之后,Maven 会生成外观不错的站点,如图10.2所示。

这个站点将生成于Maven的构建目录中——另一项约定。Maven使用 target/目录来保存所有与构建本身有关的文件。甚至在这个目录下,源代码被编译在target/classes/目录中,并且文档被生成在 target/site/目录中,这项约定依然成立。

在你检查项目之后,你可能会注意到,这个站点更像是一个网站骨架。的确是这样的,但是不要忘了,我们只使用了少量的数据就生成了这个站点。我们可以在 src/site目录中加入更多的数据和网页、同时Maven会把这个目录添加到站点中,以生成完整的文档。

image.png

图10.2 Maven为项目生成的站点文档

相关内容

文章评论

表情

共 0 条评论,查看全部
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~