要启用过滤,web.xml
您必须像这样配置 WAR 插件:
<plugin> <artifactId>maven-war-plugin</artifactId> <version>3.3.2</version> <configuration> <filteringDeploymentDescriptors>true</filteringDeploymentDescriptors> </configuration> </plugin>
可以在此处找到示例。
使用时,项目中的依赖项工件的副本会将分类器附加到其文件名中。这可用于区分重复的工件。
给它一个“提供的”范围。
dependentWarExclude
在覆盖中用于从组装的 webapp 中排除依赖的 WAR 文件。
使用<webResources>
/<exclude>
参数来标识要排除的标记。
有关详细信息,请参阅添加和过滤外部 Web 资源。
使用dependentWarExcludes
参数来标识要排除的标记。
对于每个目标,您可以使用插件站点中的文档。
如果您需要特定版本,请使用mvn site:site
或使用以下方式生成它:
mvn help:describe -Dplugin=war -Dfull=true -Dversion=<your-plugin-version-here>
如果您只想将类和资源打包为 JAR,WEB-INF/lib
而不是松散的文件WEB-INF/classes
,请使用以下配置:
<plugin> <artifactId>maven-war-plugin</artifactId> <version>3.3.2</version> <configuration> <archiveClasses>true</archiveClasses> </configuration> </plugin>
如果您需要在另一个项目中重用此 JAR,推荐的方法是将类移动到构建 JAR 的单独模块中,然后从您的 web 应用程序以及任何其他需要的项目中声明对该 JAR 的依赖关系它。
如果您无法将类移动到另一个项目,则可以使用以下配置将 webapp 中包含的类和资源部署为带有分类器的“附加”工件:
<project> ... <artifactId>mywebapp</artifactId> <version>1.0-SNAPSHOT</version> ... <build> <plugins> <plugin> <artifactId>maven-war-plugin</artifactId> <version>3.3.2</version> <configuration> <attachClasses>true</attachClasses> </configuration> </plugin> </plugins> </build> ... </project>
这将导致部署两个工件:mywebapp-1.0-SNAPSHOT.war
和mywebapp-1.0-SNAPSHOT-classes.jar
.