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

愤怒的人

我在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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过Gradle构建新的Grails应用

通过gradle更改文件权限

无法访问Grails 3中的Web应用程序文件夹文件

来自 build.gradle 文件的应用程序属性值

在应用程序运行时更改属性文件

如何在Grails 3中更改应用程序名称?

应用程序代码中的gradle build属性

如何在 Java 应用程序中通过命令行扫描 S3 文件?

通过Spring Boot应用程序将日志文件存储在AWS S3中

将CSS文件放在Grails应用程序中的哪里?

使用 JavaScript 更改 MVC Web 应用程序中的属性

通过gradle中的任务更改依赖关系

混合应用程序:通过本机(本地)文件在WebView中运行Web应用程序

在Grails 3 rest-api配置文件应用程序中的服务中以字符串形式渲染模板

更改grails时,如何使grails运行应用程序重新编译文件?

通过控制台创建 sam 应用程序时,在 template.yml 文件中附加一个预先存在的角色

通过R中的应用程序处理多个文件

使用 nodemodules 中更改的 js 文件发布应用程序

无法通过版本3在Android中运行应用程序

在GNOME 3启动器中更改应用程序图标的可执行文件引用

grails应用程序中的“打开的文件太多”-如何正确关闭打开的文件和流?

在Geronimo中运行grails应用程序

允许通过应用程序只读文件

无法通过“在<我的应用程序>”中打开“打开”文件从iOS文件应用程序打开文件:提供的文件URL上没有文件

无法通过Grails应用程序插入MSSQL

通过gradle将系统属性从命令行传递到我的应用程序

在Visual Studio安装程序中更改安装路径(应用程序文件夹)

如何在Spring Boot应用程序中使用配置(properties / yml)文件中的属性?

在heroku文件系统中写入文件并通过Web应用程序读取