WAR 清单定制

可以通过配置 WAR 插件的归档器来自定义清单。有关可用的不同配置选项的完整信息,请查看Maven Archiver的文档。

生成清单类路径

为 WAR 生成清单类路径与为 JAR 生成清单类路径类似,但有一些细微差别,因为您通常不希望清单类路径和WEB-INF/lib目录中都有 JAR。自定义 WAR 插件的归档器:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.3.2</version>
        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
            </manifest>
          </archive>
        </configuration>
      </plugin>
      ...
    </plugins>
  </build>
  ...
</project>

现在,您可以WEB-INF/lib按照这些示例控制清单类路径中包含哪些依赖项。Maven 将遵循传递依赖树,直到它到达范围为“提供”的工件。

注意:没有显示如何在清单类路径中包含依赖项WEB-INF/lib但不在清单类路径中。

<project>
  ...
  <dependencies>
    <dependency>
      <groupId>org.foo</groupId>
      <artifactId>bar-jar1</artifactId>
      <version>${pom.version}</version>
      <optional>true</optional>
      <!-- goes in manifest classpath, but not included in WEB-INF/lib -->
    </dependency>
    <dependency>
      <groupId>org.foo</groupId>
      <artifactId>bar-jar2</artifactId>
      <version>${pom.version}</version>
      <!-- goes in manifest classpath, AND included in WEB-INF/lib -->
    </dependency>
    <dependency>
      <groupId>org.foo</groupId>
      <artifactId>bar-jar3</artifactId>
      <version>${pom.version}</version>
      <scope>provided</scope>
      <!-- excluded from manifest classpath, and excluded from WEB-INF/lib -->
    </dependency>
    ...
  </dependencies>
  ...
</project>

查看使用清单的指南以获取更多示例。