通过gradle更改Grails 3应用程序yml文件中的属性

时间:2016-06-21 13:35:37

标签: grails gradle

我在Grails 3中默认生成的application.yml文件中有一些属性。以此属性为例

test:
    network:
        path: '/home/cool/testing_data'

现在,我想要做的部分是在调用构建脚本时更改此属性,以便它可能在其上执行的各种操作系统不同。即:在Windows上,该路径应该是'E:/ shared / testing_data',而在solaris上则是不同的。

使用这篇文章here,我可以得出结论,我可以确定我当前使用的操作系统,以便我可以进行一些更改。例如:

import org.apache.tools.ant.taskdefs.condition.Os
task checkWin() << {
    if (Os.isFamily(Os.FAMILY_WINDOWS)) {
        // it is windows, lets change the path to not be linux like
    }
}

所以我的问题是,如果需要使用gradle或任何其他方法,我可以更改application.yml文件中的属性以适应可能部署应用程序的不同操作系统吗?我正在考虑逐行读取application.yml文件并进行字符串替换,但只有在没有更清洁的解决方案的情况下才会使用它。

也许我使用错误的工具来解决这个问题,所以一个很好的问题就是,这里有一种更简单的方法,可能是对不同“环境”的类似方法:test,dev ,prod,用于操作系统,已经内置到我可以重复使用的grails的核心功能中?

1 个答案:

答案 0 :(得分:1)

只需在application.groovy所在的文件夹中创建application.yml文件即可。在groovy文件中,您可以使用任何脚本来设置属性值。

例如,将此行添加到application.groovy文件(也从yml中删除选项):

test.network.path = Os.isFamily(Os.FAMILY_WINDOWS) ? 'd:\something' : '/home/something'