该模块的POM(Project Object Model,项目对象模型)还是比较简单的,内容见代码清单10-1。
代码清单10-1 account-captcha的POM
首先POM中的第一部分是父模块声明,如同account-email、account-persist一样,这里将父模块声明为account-parent。紧接着是该项目本身的artifactId和名称,groupId和version没有声明,将自动继承自父模块。再往下声明了一个Maven属性kaptcha.version,该属性用在依赖声明中,account-captcha的依赖除了SpringFramework和JUnit之外,还有一个com.google.code.kaptcha:kaptcha。Kaptcha是一个用来生成验证码(Captcha)的开源类库,account-captcha将用它来生成注册账户时所需要的验证码图片,如果想要了解更多关于Kaptcha的信息,可以访问其项目主页:http://code.google.com/p/kaptcha/。
POM中SpringFramework和JUnit的依赖配置都继承自父模块,这里不再赘述。Kaptcha依赖声明中version使用了Maven属性,这在之前也已经见过。需要注意的是,Kaptcha依赖还有一个classifier元素,其值为jdk5,Kaptcha针对Java 1.5和Java 1.4提供了不同的分发包,因此这里使用classifier来区分两个不同的构件。
POM的最后声明了Sonatype Forge这一公共仓库,这是因为Kaptcha并没有上传的中央仓库,我们可以从Sonatype Forge仓库获得该构件。如果有自己的私服,就不需要在POM中声明该仓库了,可以代理Sonatype Forge仓库,或者直接将Kaptcha上传到自己的仓库中。
最后,不能忘记把account-captcha加入到聚合模块(也是父模块)account-parent中,见代码清单10-2。
代码清单10-2 将account-captcha加入到聚合模块account-parent