maven - 在构建战争时过滤src / main / webapp / jsp下的文件

时间:2015-01-07 06:09:28

标签: jsp maven filtering maven-war-plugin

在我的java webapp项目中,我将所有jsp文件放在 src/main/webapp/jsp. 如何在构建战争时启用过滤和替换属性占位符与实际值?

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <filters><filter>${basedir}/src/main/resources/filter.properties</filter></filters>
        <webResources>
            <resource>
                <directory>src/main/webapp/jsp</directory>
                <targetPath>/jsp/</targetPath>
                <filtering>true</filtering>
            </resource>
        </webResources>
    </configuration>
</plugin>

附加mvn package命令的控制台输出:

[exec] [INFO] Copying webapp webResources [projectbasedir/src/main/webapp/jsp] to [projectbasedir/target/myapp]
[exec] [INFO] Copying webapp resources [projectbasedir/src/main/webapp]

jsp文件在"Copying webapp webResources"步骤中被正确过滤,但"Copying webapp resources"步骤会覆盖所有这些更改,因为它会将所有内容从src/main/webapp folder重新复制到目标文件夹。

如何进行此过滤?

1 个答案:

答案 0 :(得分:0)

尝试用此配置替换它,不同之处在于将directory用作src/main/webapp,并在includes中包含子文件夹。 无论出于何种原因,directorywarSourceDirectory匹配都可以正常工作。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <filters><filter>${basedir}/src/main/resources/filter.properties</filter></filters>
        <webResources>
            <resource>
                <directory>src/main/webapp</directory>
                <targetPath>/jsp/</targetPath>
                <filtering>true</filtering>
                <includes>
                    <include>jsp/**</include>
                </includes>
            </resource>
        </webResources>
    </configuration>
</plugin>