可以通过配置 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>
查看使用清单的指南以获取更多示例。