我在我的项目中使用Gradle.我有一个任务是用我的战争做一些额外的配置.我需要构建一个在我的任务中使用的字符串,比如说,我有:
task extraStuff{ doStuff 'org.springframework:spring-web:3.0.6.RELEASE@war' }
这很好用.我需要做的是定义版本(实际上已经在属性文件中定义)并在任务中使用它,如:
springVersion=3.0.6.RELEASE task extraStuff{ doStuff 'org.springframework:spring-web:${springVersion}@war' }
我的问题是spring版本不被识别为变量.那我怎么能把它传递到字符串里呢?
如果您正在使用Gradle开发Android应用程序,要声明变量(即保留一些依赖项版本),您应该使用如下关键字:def
def version = '1.2' dependencies { compile "groupId:artifactId:${version}" }
我认为问题可能出在字符串文字分隔符上:
字符串文字的定义完全如下所示,groovy
将其用单引号或双引号括起来(例如"3.0.6.RELEASE"
);
Gstrings
如果我没记错的话,不会在单引号字符串中解析(单引号'...'
或三引号'''...'''
);
所以代码将是:
springVersion = '3.0.6.RELEASE' //or with double quotes "..." task extraStuff{ doStuff "org.springframework:spring-web:${springVersion}@war" }