maven覆盖/替换文件到WEB-INF / classes

时间:2017-12-11 10:39:55

标签: spring maven war

我希望在打包时将指定的位置文件覆盖/替换我的spring config xml文件。 而且我不想使用过滤器插件(过滤器插件必须使用dolloar占位符,它将在本地部署时运行时出错),在这里任何插件或设置我可以这样做吗?

项目结构如下:

ROOT
----config
    ----prd
        ----spring-servlet.xml
        ----web.xml
----src
    ----main
        ----java
        ----resources
            ----spring-servlet.xml
        ----webapp
....

我的pom.xml如下所示:

...
<profiles>
    <profile>
        <id>prd</id>
        <properties>
            <filterDir>prd</filterDir>
        </properties>
    </profile>
</profiles>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <webXml>${basedir}/config/${filterDir}/web.xml</webXml>
                <webResources>
                    <resource>
                        <directory>config/${filterDir}</directory>
                        <targetPath>WEB-INF/classes/</targetPath>
                        <includes>
                            <include>mvc-dispatcher-servlet.xml</include>
                        </includes>
                    </resource>
                </webResources>
            </configuration>
        </plugin>
    </plugins>
</build>

运行maven use:mvn clean package -P prd。

如果没有设置tartgetPath,将文件复制到web根目录,

将正常工作。

1 个答案:

答案 0 :(得分:0)

您可以使用maven的 copy-resources 来执行此操作。

示例maven代码应该是:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.4</version>
    <executions>
        <execution>
            <id>copy-web.xml</id>
            <phase>package</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <overwrite>true</overwrite>
                <outputDirectory>your-target-directory</outputDirectory>
                <resources>
                    <resource>
                        <directory>source-directory</directory>
                        <!--You can also mention files too-->
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>

了解有关copy-resources的更多信息,以便正确实施。