12.2 account-service
本章将完成背景案例项目,读者可以回顾第4章,除了之前实现的account-email、account-persist和account-captcha之外,该项目还包括account-service和account-web两个模块。其中,account-service用来封装底层三个模块的细节,并对外提供简单的接口,而account-web仅包含一些涉及Web的相关内容,如Servlet和JSP等。
12.2.1 account-service的POM
account-service用来封装account-email、account-persist和account-captcha三个模块的细节,因此它肯定需要依赖这三个模块。account-service的POM内容如代码清单12-2所示。
代码清单12-2 account-service的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
apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.juvenxu.mvnbook.account</groupId>
<artifactId>account-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>account-service</artifactId>
<name>Account Service</name>
<properties>
<greenmail.version>1.3.1b</greenmail.version>
</properties>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>account-email</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>account-persist</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>account-captcha</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>com.icegreen</groupId>
<artifactId>greenmail</artifactId>
<version>${greenmail.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</testResource>
</testResources>
</build>
</project>
与其他模块一样,account-service继承自account-parent,它依赖于account-email、account-persist和account-captcha三个模块。由于是同一项目中的其他模块,groupId和version都完全一致,因此可以使用Maven属性${project.groupId}和${project.version}进行替换,这样可以在升级项目版本的时候减少更改的数量。项目的其他配置如junit和greenmail依赖,以及测试资源目录过滤配置,都是为了单元测试。前面的章节已经介绍过,这里不再赘述。