基于java的web应用其标准的打包方式是WAR,WAR与JAR类似,只不过它可以包含更多的内容,如JSP文件,Servlet,Java类,web.xml配置文件,依赖JAR包,静态web资源等,一个WAR包至少包含两个子目录:META-INF和WEB-INF,前者包含了一些打包元数据信息,我们一般不去关心;后者是WAR包的核心,WEB-INF下必须包含一个Web资源表述文件web.xml,它的子目录classes包含所有该Web项目的类,而另一个子目录lib则包含所有该Web项目的依赖JAR包,classes和lib目录都会在运行的时候被加入到classpath中。用户必须为Web项目显示指定打包方式为war。
Web项目的类及资源文件同一般JAR项目一样,默认位置都是src/main/java/和src/main/resources/,测试类及测试资源文件的默认位置是src/test/java/和src/test/resources/。Web项目比较特殊的地方在于:他还有一个Web资源目录,其默认位置为src/main/webapp/。在src/main/webapp/目录下,必须包含一个子目录WEB-INF,该子目录还必须要包含web.xml文件。