清单 1. 把 Maven 指向包含 Groovy 依赖关系的远程系统库
<settings>
<profiles>
<profile>
<id>repositoryDefinitions</id>
<repositories>
.....
.....
<!-- You may have other repositories -->
....
....
<repository>
<id>apache-snapshotsv/id>
<name>Apache Snapshots Repository</name>
<url>http://people.apache.org/repo/m2-snapshot-repository</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>ignore</checksumPolicy>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</repository>
.....
.....
</repositories>
...
</profile>
</profiles>
</settings>
接下来是 Maven 的插件配置,该插件配置将指定 Grester 的 Groovy 插件依赖关系的系统库。此插件系统库配置放在为系统库声明的同一个配置文件 中(例如,名称 repositoryDefinitions 被用作配置文件的名称),如下所示:
清单 2. 把 Maven 指向包含 Groovy 插件依赖关系的远程系统库
<settings>
<profiles>
<profile>
<id>repositoryDefinitions</id>
....
....
</repositories>
<pluginRepositories>
<!-- You may have other plug-in repositories -->
....
....
<pluginRepository>
<id>apache-snapshots</id>
<name>Apache Snapshots Repository</name>
<url>http://people.apache.org/repo/m2-snapshot-repository</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>ignore</checksumPolicy>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</pluginRepository>
...
...
</pluginRepositories>
...
</profile>
</profiles>
</settings>
现在您终于可以构建插件直至完成。Grester 要求使用 Maven V2.0.5 或更高版本。如果使用早期版本,则会在编译和使用 Groovy-mojo-support 依赖关系中的功能时遇到问题。如果 $MAVEN_HOME/bin 目录是可执行文件系统路径的一部分,则可以从 maven-grester-plugin 目录(包含 Grester 的 pom.xml 文件的目录)中执行 mvn clean install 命令,如下所示:
图 4. 从命令行构建 Grester
构建通常运行得很快(少于 20 秒)。图 5 显示成功安装窗口。
图 5. 在 Maven 的本地系统库中安装 Grester
Grester 的 TDD 方法
编写 Grester 时,我必须在编写集成测试时记住它们适用的操作系统环境。这变得有点挑战性,因为我将从匹配操作系统类型的 if . . . else 子句开始,然后根据类型做出断言。不久,如果为该平台编写测试的同时 又为另一个平台编写测试,则可以实现跨两个平台的稳定的成功构建。