【问题标题】:Grails access variable in build.gradle from Service classGrails 访问来自 Service 类的 build.gradle 中的变量
【发布时间】:2016-07-27 14:22:12
【问题描述】:

我正坐在 Grails 3.1.4 应用程序前。 build.gradle 文件如下所示:

buildscript {
    ...
}


version "01.01.12.99"

...

ext {
    ...
}

repositories {
    ...
}

dependencyManagement {
    ...
}

dependencies {
    ...
}

我想从我的一个服务类访问version 变量。这是以某种方式内置在 Grails 中还是我试图做一些不可能的事情?有没有办法从服务类加载这个变量?

我搜索了一下,发现this,但它访问的是Grails版本而不是项目版本。

【问题讨论】:

    标签: grails gradle build.gradle grails-3.1


    【解决方案1】:

    嗯,我最近开始使用 Grails 3。这里我得到了解决方案:

    println System.properties.getProperty("info.app.version")
    

    你会得到"01.01.12.99"。这对我来说正在为 Grails 3.1.8 工作。

    【讨论】:

    • 虽然这在使用 bootRun 在本地运行 Grails 应用程序时有效,但在创建 war 文件并将其部署到服务器时它不起作用。后者总是返回null。你知道如何为部署的战争文件进行这项工作吗?
    • 你试过在构建中打印System.properties 吗?
    【解决方案2】:

    实现此目的的另一种方法(除了 Shashank Agrawal 提供的解决方案之外)是依赖 grailsApplication bean,代码如下:

    grailsApplication.config.getProperty('info.app.version')
    

    我使用 Grails 3.1.9 和 3.2.7 对此进行了测试。

    【讨论】:

      猜你喜欢
      • 2014-09-06
      • 1970-01-01
      • 2015-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多