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

http://maven.

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依赖,以及测试资源目录过滤配置,都是为了单元测试。前面的章节已经介绍过,这里不再赘述。