必须为Web项目显式指定打包方式为war,否则无法正确打包Web项目。
1、选择maven-archetype-webapp:
2、项目结构如图:
web项目的类与资源与一般的jar项目是一样的。都有src/main/java和src/main/resources。测试类是src/test/java和src/test/resources。
比较特殊的是,web项目有一个Web资源目录,位于src/main/webapp。在该目录下,必须包含一个子目录WEB-INF。该子目录包括web.xml文件。路径是:src/main/webapp/WEB-INF/web.xml。
同时在webapp目录下还包括其他的资源文件html、jsp、css、js等。路径是:src/main/webapp/XXX.html。
在Maven项目中,在WEB-INF目录下面并没有包括lib目录,因为依赖都配置在pom中。而classes文件都放在target目录中。
3、POM中的配置
<groupId>com.juvenxu.mvnbook.account</groupId>
<artifactId>account-parent</artifactId>
<!--web项目打包为war-->
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>account-parent Maven Webapp</name>
在POM中可以引用其他子模块,与配置依赖是一样的:
<dependency>
<groupId>com.juvenxu.mvnbook.account</groupId>
<artifactId>account-email</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.juvenxu.mvnbook.account</groupId>
<artifactId>account-persist</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.juvenxu.mvnbook.account</groupId>
<artifactId>account-captcha</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>