groovy - 在 Gradle 构建脚本中使用变量

标签 groovy gradle

我在我的项目中使用 Gradle。我的任务是对我的 war 进行一些额外的配置。我需要构建一个字符串以在我的任务中使用,例如,假设我有:

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 版本不被识别为变量。那么如何在字符串中传递它呢?

最佳答案

我认为问题可能出在字符串文字定界符上:

  • 字符串字面量的定义与 groovy 完全一样所以用单引号或双引号括起来(例如 "3.0.6.RELEASE" );
  • Gstrings如果我没记错的话,不会在单引号字符串(单 '...' 或三重 '''...''' 的)中解析;

  • 所以代码将是:
    springVersion = '3.0.6.RELEASE' //or with double quotes "..."
    
    task extraStuff{
        doStuff "org.springframework:spring-web:${springVersion}@war"
    }
    

    关于groovy - 在 Gradle 构建脚本中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34675914/

    相关文章:

    android - JCenter 为 Play 服务抛出 409

    unity3d - "gradle failed to fetch dependencies"与 Admob 统一集成

    gradle - 在gradle中执行liquibase生成changeLogFile会产生错误

    android - 如何使用 Gradle 构建系统创建两个或三个不同的构建,每个构建指向不同的服务器?

    java - Java 是否具有与 Objective-C 中的 @synthesize 等效的功能?

    java - cucumber-jvm:拦截功能之上的注释

    Groovy - 使用集合中的 where 子句计数不同

    javascript - 如何在 Controller View 中显示消息框?

    groovy - 从子项目build.gradle访问根gradle build.gradle中的变量?

    android - 找不到....未指定