8.1 account-persist
在讨论多模块Maven项目的聚合与继承之前,本书先引入账户注册服务的account-persist模块。该模块负责账户数据的持久化,以XML文件的形式保存账户数据,并支持账户的创建、读取、更新、删除等操作。
8.1.1 account-persist的POM
首先,看一下account-persist模块的POM文件,见代码清单8-1。
代码清单8-1 account-persist的POM
<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.juvenxu.mvnbook.account</groupId>
<artifactId>account-persist</artifactId>
<name>Account Persist</name>
<version>1.0.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>2.5.6</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>2.5.6</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>2.5.6</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
该模块的坐标为com.juvenxu.mvnbook.account:account-persist:1.0.0-SNAPSHOT,回顾一下5.3.1节,读者就能发现,该模块groupId和version与account-email模块完全一致,而且artifactId也有相同的前缀。一般来说,一个项目的子模块都应该使用同样的groupId,如果它们一起开发和发布,还应该使用同样的version,此外,它们的artifactId还应该使用一致的前缀,以方便同其他项目区分。
POM中配置了一些依赖。其中,dom4j是用来支持XML操作的;接下来是几个spring-framework的依赖,与account-email中一样,它们主要用来支持依赖注入;最后是一个测试范围的junit依赖,用来支持单元测试。
接着是build元素,它先是包含了一个testResources子元素,这是为了开启资源过滤。稍后讨论account-persist单元测试的时候,我们会详细介绍。
build元素下还包含了两个插件的配置。首先是配置maven-compiler-plugin支持Java1.5,我们知道,虽然这里没有配置插件版本,但由于maven-compiler-plugin是核心插件,它的版本已经在超级POM中设定了。此外,如果这里不配置groupId,Maven也会使用默认的groupId org.apache.maven.plugins。除了maven-compiler-plugin,这里还配置了maven-resources-plugin使用UTF-8编码处理资源文件。