我有一个这样的多模块 Maven 项目:
project
project-core
project-webapp
project-core
是 的依赖项project-webapp
。在构建时project-core
,我从最终的 jar 中排除了一些元素。当我使用 maven(通过 m2eclipse)构建和部署整个项目时,一切都很好。
但是,如果我使用 WTP 构建和部署,则会跳过资源过滤。
到目前为止,我发现的唯一解决方法是从 m2eclipse 禁用工作区分辨率。这样,WTP就与maven构建的jar构建了最后的战争。这种解决方法的主要缺点是我必须在每次修改project-core
源代码时安装、更新项目。
如何强制 WTP 过滤掉资源project-core
?
项目/项目核心/pom.xml
<?xml version="1.0"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>project</artifactId>
<groupId>com.company.project</groupId>
<version>1.0.0</version>
</parent>
<artifactId>project-core</artifactId>
<name>project-core</name>
<version>${version.project}</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
// (huge) dependencies list ...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<excludes>
<exclude>file.properties</exclude>
<exclude>DIR/file.xml</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
// repositories ...
</repositories>
</project>
编辑:
但是,如果我使用 WTP 构建和部署,则会跳过资源过滤。
实际上我没有在正确的阶段进行过滤。仅在 jar 构建期间过滤资源。感谢@Samuel EUSTACHI,我现在在将资源复制到target
文件夹时对其进行过滤。我是怎么做到的:
项目/项目核心/pom.xml
<build>
<!--
I removed completely the plugins node and
replace it with the resources node
-->
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>file.properties</exclude>
<exclude>DIR/file.xml</exclude>
</excludes>
</resource>
</resources>
</build>