从 gradle 构建脚本中读取 heroku 环境变量
Posted
技术标签:
【中文标题】从 gradle 构建脚本中读取 heroku 环境变量【英文标题】:Read heroku environment variables from gradle build script 【发布时间】:2016-12-23 18:28:02 【问题描述】:我的构建脚本必须有一个部分:
flyway
url = System.getenv('JDBC_DATABASE_URL')
user = System.getenv('JDBC_DATABASE_USERNAME')
password = System.getenv('JDBC_DATABASE_PASSWORD')
问题是当我运行时这些环境变量是可见的
heroku run printenv --remote staging | grep JDBC
它们在定义了 stage 任务的 gradle 构建脚本中为空。
这是什么原因?如何解决这个问题?
【问题讨论】:
【参考方案1】:这些变量在部署期间似乎不可用,但您可以改为从环境变量 DATABASE_URL 中获取数据。
robert_difalco 在https://***.com/a/27988242 中展示了一个示例:
URI dbUri = new URI(System.getenv("DATABASE_URL")); String username = dbUri.getUserInfo().split(":")[0]; String password = dbUri.getUserInfo().split(":")[1]; int port = dbUri.getPort(); String dbUrl = "jdbc:postgresql://" + dbUri.getHost() + ":" + port + dbUri.getPath();
【讨论】:
请直接在您的答案中插入相关示例。链接可能会损坏,因此这是 SO 的一般建议。以上是关于从 gradle 构建脚本中读取 heroku 环境变量的主要内容,如果未能解决你的问题,请参考以下文章
为 Java Spring Boot Gradle 项目构建 Heroku Procfile
heroku 在构建脚本中失败,但 heroku 本地网络很好