我使用下面的代码来复制和过滤属性文件中的属性,它工作正常。有一个变量不是静态的,我需要作为参数传递,以便它可以在正确的文件上工作我正在使用-Penv = test或-Penv = at但是我收到了错误。
task createLocalProp(type:Copy) << {
from "templates/local.properties.template"
into ("$buildDir/properties")
def myProps = new Properties()
file("Properties/${env}/local_${env}.properties").withInputStream{
myProps.load(it);
}
filter(org.apache.tools.ant.filters.ReplaceTokens, tokens: myProps)
}
错误:
C:\GRADLE_WORK\XXXX-GRADLE>gradle -b build_localprop.gradle createLocalProp -Pen
v=test
FAILURE: Build failed with an exception.
* Where:
Build file 'C:\GRADLE_WORK\XXX-GRADLE\build_localprop.gradle' line: 37
* What went wrong:
Could not compile build file 'C:\GRADLE_WORK\XXXX-GRADLE\build_localprop.gradle'
.
> startup failed:
build file 'C:\GRADLE_WORK\XXX-GRADLE\build_localprop.gradle': 37: expecting
EOF, found '<<' @ line 37, column 33.
task createLocalProp(type:Copy) << {
^
1 error
答案 0 :(得分:2)
我现在不确定编译器错误发生的原因,但是您不应该在执行阶段配置任务,而是在配置阶段配置。 <<
语法是doLast
的快捷方式,因此即使它编译它也可能无法正常工作。删除<<
,可能一切正常。
答案 1 :(得分:0)
我遇到了类似的错误,报告我的gradle文件底部出错了。实际上,在进行差异合并冲突时,我错过了文件中间缺少的右括号。