gpt4 book ai didi

grails - DataSource.groovy类路径

转载 作者:行者123 更新时间:2023-12-02 15:27:40 24 4
gpt4 key购买 nike

def encryptedUid = getClass().getClassLoader()
.getResourceAsStream('user.txt')
.getText()

当我在Windows环境中运行dataSource.groovy文件中的这段代码时,它工作正常,但是当我将代码 checkin 并且Jenkins尝试加载DataSource.groovy时,我得到了:

加载DataSource.groovy时出错:无法在空对象上调用方法getText()。

user.txt文件位于src / java文件夹的根目录中,我知道它已内置在Windows构建的war文件中。它甚至根本无法在Linux机器上构建war文件。

有任何想法吗?

最佳答案

显然,您正在尝试配置数据库用户名/密码,但是出于安全原因,不想将它们直接放入DataSource.groovy中。这是我的处理方式:

将 secret 配置放入文件/grails-app/conf/secret.properties中。该文件的内容如下所示:

dataSource.username=root
dataSource.password=secret
# other secret configuration

通过在 Config.groovy中添加以下内容,将该文件包括在grails配置中
grails.config.locations = ["classpath:secret.properties"]

如果您希望能够覆盖该配置。根据每个环境在 secret.properties中将其更改为
grails.config.locations = [
"classpath:secret.properties",
"classpath:secret-${Environment.current}.properties"
]

然后,您可以(可选)添加文件 secret-DEVELOPMENT.properties,它将覆盖开发环境中 secret.properties中的配置,对于其他环境也是如此。

当然,为了使其正常工作,在建立 war (或执行 secret*.properties)时必须存在 run-app文件,并且不应将其检入VCS。

您不限于放置这些配置。文件放在类路径的相对位置。您可以使用 file:前缀而不是 classpath:将它们放在文件系统上的任何位置。最后,您可以将 secret 配置放入 .groovy配置中。文件而不是 .properties文件。

关于grails - DataSource.groovy类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25288444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com