maven 插件 maven-war-plugin 参数说明

311 阅读1分钟

maven-war-plugin 是 Maven 中用于构建 Web 应用程序的插件。它将项目打包成一个 Web 应用程序归档(WAR)文件。以下是 maven-war-plugin 的一些常用参数及其说明:

常用参数

  1. warSourceDirectory

    • 描述:指定包含 Web 应用程序内容(如 HTML、CSS、JavaScript 文件)的目录。
    • 默认值${basedir}/src/main/webapp
    • 示例
      <configuration>
          <warSourceDirectory>src/main/webapp</warSourceDirectory>
      </configuration>
      
  2. webXml

    • 描述:指定自定义的 web.xml 文件路径。
    • 默认值${basedir}/src/main/webapp/WEB-INF/web.xml
    • 示例
      <configuration>
          <webXml>src/main/webapp/WEB-INF/custom-web.xml</webXml>
      </configuration>
      
  3. outputDirectory

    • 描述:指定生成的 WAR 文件的输出目录。
    • 默认值${project.build.directory}
    • 示例
      <configuration>
          <outputDirectory>${project.build.directory}/custom-output</outputDirectory>
      </configuration>
      
  4. warName

    • 描述:指定生成的 WAR 文件的名称(不包括扩展名)。
    • 默认值${project.build.finalName}
    • 示例
      <configuration>
          <warName>my-custom-war</warName>
      </configuration>
      
  5. archiveClasses

    • 描述:是否将编译后的类文件归档到 WEB-INF/lib 目录中。
    • 默认值false
    • 示例
      <configuration>
          <archiveClasses>true</archiveClasses>
      </configuration>
      
  6. attachClasses

    • 描述:是否将编译后的类文件作为一个独立的 JAR 附加到项目中。
    • 默认值false
    • 示例
      <configuration>
          <attachClasses>true</attachClasses>
      </configuration>
      
  7. classifier

    • 描述:为生成的 WAR 文件指定一个分类符。
    • 默认值:无
    • 示例
      <configuration>
          <classifier>beta</classifier>
      </configuration>
      
  8. packagingExcludes

    • 描述:指定打包时要排除的文件或目录的模式。
    • 默认值:无
    • 示例
      <configuration>
          <packagingExcludes>**/excluded-file.txt</packagingExcludes>
      </configuration>
      
  9. packagingIncludes

    • 描述:指定打包时要包含的文件或目录的模式。
    • 默认值:无
    • 示例
      <configuration>
          <packagingIncludes>**/*.html</packagingIncludes>
      </configuration>
      
  10. failOnMissingWebXml

    • 描述:是否在缺少 web.xml 文件时失败。
    • 默认值true
    • 示例
      <configuration>
          <failOnMissingWebXml>false</failOnMissingWebXml>
      </configuration>
      

完整示例

以下是一个完整的 maven-war-plugin 配置示例:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.3.2</version>
            <configuration>
                <warSourceDirectory>src/main/webapp</warSourceDirectory>
                <webXml>src/main/webapp/WEB-INF/custom-web.xml</webXml>
                <outputDirectory>${project.build.directory}/custom-output</outputDirectory>
                <warName>my-custom-war</warName>
                <archiveClasses>true</archiveClasses>
                <attachClasses>true</attachClasses>
                <classifier>beta</classifier>
                <packagingExcludes>**/excluded-file.txt</packagingExcludes>
                <packagingIncludes>**/*.html</packagingIncludes>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>

通过配置这些参数,你可以灵活地控制 WAR 文件的生成过程,满足不同的项目需求。