Simple weather 应用程序必须要完成以下三个任务:从 Yahoo! Weather 获取
XML 数据,解析 XML
数据,打印格式化的输出至标准输出。为了完成这三个任务,我们需要为项目的 pom.xml
引入一些新的依赖。
为了解析来自 Yahoo! 的 XML 响应,我们将会使用 Dom4J 和 Jaxen
,为了格式化这个命令行程序的输出,我们将会使用 Velocity ,我们还需要加入对 Log4j 的依赖,用来做日志。加入这些依赖之后,我们的
dependencies 元素就成了以下模样:
Example 4.3. 添加 Dom4J, Jaxen, Velocity 和 Log4J 作为依赖
<project> [...] <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> [...] </project>
正如你从上面所看到的,我们在范围为
test
的 JUnit
依赖基础上又加了四个依赖元素。如果你把这些依赖添加到项目的 pom.xml
文件然后运行
mvn install ,你会看到 Maven 下载这些依赖及其它传递性依赖到你的本地 Maven 仓库。
我们如何找这些依赖呢?我们都“知道”适当的 groupId
和
artifactId
的值吗?有些依赖 (像 Log4J)
被广泛使用,以至于每次你需要使用它们的时候你都会记得它们的 groupId
和
artifactId
。 而 Velocity, Dom4J 和 Jaxen 是通过一个十分有用的站点
http://www.mvnrepository.com
来定位的。 该站点提供了针对 Maven 仓库的搜索接口,你可以用它来搜索依赖。 你可以自己测试一下,载入 http://www.mvnrepository.com
然后搜索一些常用的类库,如 Hibernate 或者 Spring Framework 。当你在这上面搜索构件时,它会显示一个
artifactId
和所有 Maven 中央仓库所知道的版本。
点击某个特定的版本后,它会载入一个页面,这个页面就包括了你需要复制到你自己项目 pom.xml
中的依赖元素。 你经常会发现某个特定的类库拥有多于一个的 groupId
,这个时候你需要通过 mvnrepository.com
来帮助确定你到底需要怎样配置你的依赖。