5.3. 创建这个简单的Web应用

创建你的 web 应用程序项目,运行 mvn archetype:create ,加上参数 artifactIdgroupId。 指定 archetypeArtifactIdmaven-archetype-webapp。 如此便创建了恰到好处的目录结构和 Maven POM

~/examples$ mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch05 \
                                                             -DartifactId=simple-webapp \
                                                             -DpackageName=org.sonatype.mavenbook \
                                                             -DarchetypeArtifactId=maven-archetype-webapp
[INFO] [archetype:create]
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating Archetype: maven-archetype-webapp:RELEASE
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: org.sonatype.mavenbook.ch05
[INFO] Parameter: packageName, Value: org.sonatype.mavenbook
[INFO] Parameter: basedir, Value: ~/examples
[INFO] Parameter: package, Value: org.sonatype.mavenbook
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: artifactId, Value: simple-webapp
[INFO] ********************* End of debug info from resources from generated POM *******
[INFO] Archetype created in dir: ~/examples/simple-webapp 

在 Maven Archetype 插件创建好了项目之后,切换目录至 simple-web 后看一下 pom.xml 。 你会看到如下的 XML 文档:

Example 5.1. simple-web 项目的初始 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>
  <groupId>org.sonatype.mavenbook.ch05</groupId>
  <artifactId>simple-webapp</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>simple-webapp Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>simple-webapp</finalName>
  </build>
</project>

注意 packaging 元素包含的值是 war 。这种打包类型配置让 Maven 以 WAR 文件的形式生成一个 web 应用。一个打包类型为 war 的项目,将会在 target/ 目录创建一个 WAR 文件,这个文件的默认名称是 content-zh-0.5.war 。对于这个项目, 默认的 WAR 文件是 target/simple-webapp-1.0-SNAPSHOT.war 。在这个 simple-webapp 项目中,我们已经通过在项目的构建配置中加入 finalName 元素来自定义这个生成的 WAR 文件的名称。根据 simple-webappfinalNamepackage 阶段生成的 WAR 文件为 target/simple-webapp.war