Maven资源插件不会过滤Grails项目上的资源

时间:2012-10-02 11:13:11

标签: maven grails resources

我有一个使用Maven构建的Grails项目。 这个项目中有一个资源文件smth.properties,最后一行看起来像是:

build.number=${build.number}

我尝试使用maven-resources-plugin过滤它并在执行mvn -Dbuild.number=1.0 install时填充,但似乎插件不起作用,因为grails-maven-plugin会这样做。 相同的代码,但没有Grails工作完美。

如何使用Grails过滤资源,在${name}上使用-Dname=value填充所有字段mvn install

2 个答案:

答案 0 :(得分:1)

您可以直接在maven-resources-plugin代码中添加资源过滤,而不是配置<build/>

<project>
    ...
    <properties>
        <name>my default value</name>
    </properties>
    ...
    <build>
        ...
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        ...
    </build>
    ...
</project>

然后使用命令行运行:

mvn -Dname=myNewValue install

答案 1 :(得分:0)

Maven资源处理基本上是您的资源的副本,从一个目录到另一个目录,替换占位符。

它与流程资源生命周期阶段紧密相关。

如果要使用其他插件重新处理资源,一种简单的方法是将它们配置为 1)第一个插件,从folderA获取资源并复制到文件夹B(进行一些处理) 2)第二个插件,从folderB获取资源,并复制到folderC

并绑定到2个不同的阶段,以确保正确的执行顺序。

  

资源:资源将主要源代码的资源复制到   主输出目录。

     

此目标通常会自动执行,因为它受到约束   默认为流程资源生命周期阶段。它总是使用   project.build.resources元素指定资源,并通过   default使用project.build.outputDirectory指定副本   目的地。