首页 » Maven实战 » Maven实战全文在线阅读

《Maven实战》12.3.1 account-web的POM

关灯直达底部

除了使用打包方式war之外,Web项目的POM与一般项目并没多大的区别。account-web的POM代码见代码清单12-8。

代码清单12-8 account-web的POM

如上述代码所示,account-web的packaging元素值为war,表示这是一个Web项目,需要以war方式进行打包。account-web依赖于servlet-api和jsp-api这两个几乎所有Web项目都要依赖的包,它们为servlet和jsp的编写提供支持。需要注意的是,这两个依赖的范围是provided,表示它们最终不会被打包至war文件中,这是因为几乎所有Web容器都会提供这两个类库,如果war包中重复出现,就会导致潜在的依赖冲突问题。account-web还依赖于account-service和spring-web,其中前者为Web应用提供底层支持,后者为Web应用提供Spring的集成支持。

在一些Web项目中,读者可能会看到finalName元素的配置。该元素用来标识项目生成的主构件的名称,该元素的默认值已在超级POM中设定,值为${project.artifactId}-${project.version},因此代码清单12-8对应的主构件名称为account-web-1.0.0-SNAPSHOT.war。不过,这样的名称显然不利于部署,不管是测试环境还是最终产品环境,我们都不想在访问页面的时候输入冗长的地址,因此我们会需要名字更为简洁的war包。这时可以如下所示配置finalName元素:

经此配置后,项目生成的war包名称就会成为account.war,更方便部署。