我有一个使用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
?
答案 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指定副本 目的地。