我在Grails 3的默认生成的application.yml文件中有一些属性。
test:
network:
path: '/home/cool/testing_data'
现在,我要做的部分是在调用构建脚本时更改此属性,以便对于可能在其上执行的各种操作系统而言,它是不同的。即:在Windows上,该路径应为“ E:/ shared / testing_data”,而在solaris上,则应有所不同。
使用此处的这篇文章,我可以得出结论,我可以确定我当前所处的操作系统,从而可以进行一些更改。前任:
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文件中的属性以适应应用程序可能部署在其上的不同OS系统?我正在考虑逐行阅读application.yml文件并进行字符串替换,但是只有在没有更干净的解决方案的情况下,我才诉诸于此。
也许我是使用错误的工具按原样解决了这个问题,所以有一个很好的问题是,我在这里缺少一种更简单的方法吗,可能是对不同的“环境”(例如:test,dev,prod,对于操作系统,已经内置在grails的核心功能中,我可以重复使用?
只需application.groovy
在同一个文件夹中创建文件即可application.yml
。在groovy文件中,您可以使用任何脚本来设置属性值。
例如application.groovy
,将以下行添加到文件中(也从yml中删除选项):
test.network.path = Os.isFamily(Os.FAMILY_WINDOWS) ? 'd:\something' : '/home/something'
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句