我想在编译代码之前替换我的 Config.java 文件中的几行。我所能找到的只是在复制过程中通过过滤器解析文件。一旦我必须复制它,我就必须将它保存在某个地方——这就是我寻求解决方案的原因:在替换行时复制到临时位置 > 删除原始文件 > 将复制的文件复制回原始位置 > 删除临时文件。有更好的解决方案吗?
原文由 Srneczek 发布,翻译遵循 CC BY-SA 4.0 许可协议
为了补充 lance-java
的答案,如果您只想更改一个值,我发现这个成语更简单:
task generateSources(type: Copy) {
from 'src/replaceme/java'
into "$buildDir/generated-src"
filter { line -> line.replaceAll('xxx', 'aaa') }
}
警告:请记住 Copy
任务只会在源文件更改时运行。如果您希望根据其他条件进行替换,则需要使用 Gradle 的增量构建功能来指定它。
原文由 Vic Seedoubleyew 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答1.3k 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答724 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.7k 阅读
2 回答1.3k 阅读
也许你应该尝试像蚂蚁的 replaceregexp 这样的东西:
此任务会将所有出现的
aaa
替换为bbb
。不管怎样,这只是一个例子,你可以根据你的目的修改它,或者用 ant 尝试一些类似的解决方案。