使用Maven配置文件生成自定义WAR归档

时间:2011-12-06 11:09:12

标签: xml maven profiles maven-war-plugin

我需要根据配置文件之间不同的值,从Maven项目中生成不同的WAR。

对于某些文件,我的默认值可能会被配置覆盖。例如,我可能有一个带有默认图像的图像文件夹,而“prof1”配置文件可能会覆盖其中一些,而“prof2”配置文件可能只使用默认图像。

我在使用the Maven War Plugin实现此问题时遇到了麻烦。我在下面显示的配置中列出了不同的webresources,但是没有覆盖这些值 - 而是始终显示默认图像。我将Web应用程序文件放入/Webcontent/目录而不是/src/main/webapp可能是相关的;如果需要我可以换回来。

这是我的maven war插件配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>
    <configuration>
        <overwrite>true</overwrite>
        <webResources>  
            <resource>
                <directory>${basedir}/WebContent</directory>
                <excludes>
                    <exclude>**/resources/*</exclude>
                </excludes>
            </resource> 
            <resource>
                <directory>${basedir}/WebContent/resources</directory>
                <targetPath>WEB-INF/classes</targetPath>
                <filtering>true</filtering>
            </resource>
            <resource >
                <directory>${basedir}/version/${profile.name}</directory>
            </resource>
        </webResources>
        <archiveClasses>false</archiveClasses>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
                <classpathPrefix />
            </manifest>
        </archive>
    </configuration>
</plugin>

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,显然应用程序的WebContent部分中的资源不是通过这种过滤处理的,我使用的方法是将特定配置文件的资源复制到临时构建文件夹,然后将其与战争,这里概述:

http://edeustace.wordpress.com/2010/07/08/processing-resources-with-the-maven-war-plugin/

这很有效 -