从gradle构建脚本中读取heroku环境变量

时间:2016-08-17 07:44:14

标签: heroku gradle environment

我的构建脚本必须有一个部分:

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

它们在gradle构建脚本中为null,其中定义了 stage 任务。

这是什么原因?如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

这些变量在部署期间似乎不可用,但您可以从环境变量DATABASE_URL获取数据。

robert_difalco在ng2-translate中展示了一个例子:

    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();