我有一个简单的Gradle构建脚本,用于编译和打包(类似于应用程序插件)我的Java应用程序。唯一无法完成的是在一个简单的.properties文件中替换当前版本号。
我创建了一个文件'src/main/resources/app-info.properties',其中只有一行'application.version = @version@'。现在,每当该文件被复制到构建文件夹时(认为这在构建任务期间发生),我都想替换此版本字符串。
我已经尝试过使用ants ReplaceTokens的简单解决方案。它确实替换了版本,但也破坏了我的资源中的.png文件。
那么,是否有一个简单的解决方案,在构建任务(或处理复制到构建文件夹的任务)期间仅替换一个单独的文件中的标记?
感谢您的任何帮助! Ben
====== 根据Opal的评论进行编辑 =====
根据提示,我添加了以下内容:
import org.apache.tools.ant.filters.ReplaceTokens
// ...
build {
from('src/main/resources') {
include '*.properties'
filter(ReplaceTokens, tokens: [version : project.version])
}
}
这导致了以下错误:
在根项目上找不到方法from(),参数为[src/main/resources, build_vbjud9ah7v3pj5e7c5bkm490b$_run_closure6_closure12@43ead1a8]
似乎我选择的任务有误?
====== 编辑以完整性添加基于Opals建议的解决方案 =====
谢谢你,以下是可行的解决方案!
processResources {
from('src/main/resources') {
include '*.properties'
filter(ReplaceTokens, tokens: [version : project.version])
}
}