maven war插件执行和多模块项目中的过滤

时间:2010-10-19 07:49:06

标签: maven-2 maven-war-plugin

我正在使用maven来构建一个多模块项目。

在一个项目中,我执行maven-war-plugin四次,以便在每次执行中过滤一些属性。作为一个独立的项目,它运作良好。

但是当我构建多模块时,它从“父”执行四次,但它们都没有过滤属性。

谢谢大家!

这是我的pom.xml的一个片段:

<project>  
<modelVersion>4.0.0</modelVersion>
<groupId>net.my</groupId>
<artifactId>my-project</artifactId>
<packaging>war</packaging>
<name>myProject</name>
<version>0.0.1</version>

<build>
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.0</version>
        <executions>
            <execution>
                <id>list</id>
                <phase>package</phase>
                <goals>
                    <goal>war</goal>
                </goals>
                <configuration>
                    <warName>myProj-list.war</warName>
                    <webResources>
                        <resource>
                            <directory>src/main/webapp</directory>
                            <filtering>true</filtering>
                            <includes>
                                <include>**/*.xml</include>
                            </includes>
                        </resource>
                    </webResources>
                    <filtering>true</filtering>
                    <filters>
                        <filter>src/main/filters/list.properties</filter>
                    </filters>
                </configuration>
            </execution>  
            ...
            <!-- more executions -->
            </execution>
        </executions>
        <configuration>
            <webResources>
                <resource>
                    <directory>src/main/webapp</directory>
                    <filtering>true</filtering>
                    <includes>
                         <include>**/*.xml</include>
                      </includes>
                </resource>
             </webResources>
             <filters>
                <filter>src/main/filters/locator.properties</filter>
            </filters>
        </configuration>
    </plugin>
</plugins>
</build>

1 个答案:

答案 0 :(得分:1)

  

但是当我构建多模块时,它从“父”执行四次,但它们都没有过滤属性。

听起来像是一个复杂的设置......无论如何,您确定src/main/webapp的内容会覆盖过滤后的内容吗?使用-X运行maven可能有助于调试正在发生的事情。

我的建议是停止滥用滥用 webResources元素(应该用于外部网络资源)并移动需要的内容在src/main/webapp之外过滤。