【问题标题】:Pass database credential through Gradle通过 Gradle 传递数据库凭证
【发布时间】:2017-11-26 09:06:33
【问题描述】:

我正在使用gradle credentials plugin 将用户和密码数据库传递给liquibase plugin。另外,我使用spring数据存储库和hibernate作为数据层,我想将相同的liquibase插件配置传递给它。有一种方法可以通过 gradle 传递凭据(我不想创建 application.properties 文件,因为凭据已经存储在凭据插件中)?

我正在使用以下代码将凭据传递给 liquibase:

def changelog = "$projectDir/src/main/resources/db_version/changelog-master.xml"
def urlDatabase = ...
def schema = ...

liquibase {
    activities{
        main {
            changeLogFile changelog
            url urlDatabase
            username credentials.devUsr
            password credentials.devPass
            defaultSchemaName schema
        }
    }
}

我想做类似的事情:

datasource{
    username credentials.devUsr
    password credentials.devPass
}

或者写属性:

spring.datasource.username credentials.devUsr
spring.datasource.password credentials.devPass

【问题讨论】:

  • 提供代码或到目前为止你已经实现的任何东西。

标签: hibernate gradle spring-data spring-data-jpa gradle-plugin


【解决方案1】:

如果您使用的是自动接受环境变量的 Spring Boot,您可以通过此机制传递 db 凭据。这里是对应的documentation

如果你没有 Spring Boot,你仍然可以通过环境传递变量,但你需要在你的应用程序中实现接受。这里是comprehensive overview

这是关于passing env variables in Gradle的答案。

【讨论】:

    【解决方案2】:

    Spring 提供了多种方式来使用配置中的属性以及提供它们的方式,包括将它们作为命令行参数或系统属性传递。有关详细信息,请参阅https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

    在 Spring 配置中进行设置后,您只需指示 Gradle 将插件中的值作为命令行参数或系统属性传递。

    这描述了一种使用 Gradle 设置系统属性的方法:https://discuss.gradle.org/t/how-to-set-a-system-property-before-calling-task-in-gradle/6060/4

    这里似乎涵盖了传递命令行参数:Gradle task - pass arguments to Java application

    【讨论】:

      【解决方案3】:

      @Jens Schauder 和@webdizz 你是对的,但这里是示例:

      bootRun{
         systemProperty "spring.datasource.username", credentials.devUsr
         systemProperty "spring.datasource.password", credentials.devPass
      }
      

      使用此代码,我在启动 Spring Boot 应用程序时将数据库凭据作为系统属性传递。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-04
        • 1970-01-01
        • 1970-01-01
        • 2018-01-28
        • 1970-01-01
        相关资源
        最近更新 更多