【问题标题】:How do I define a gradle build script environment variable from a file in my src/main/resources directory?如何从 src/main/resources 目录中的文件定义 gradle 构建脚本环境变量?
【发布时间】:2015-10-16 15:07:00
【问题描述】:

我在 Windows 7 上使用 Gradle 2.7。我有一个属性文件“src/main/resources/liquibase.properties”,我想在我的 build.gradle 脚本中引用它的属性。因此,例如在我的属性文件中,我有

url=jdbc:mysql://localhost:3306/my_db
username=myuser
password=mypass

我想在我的脚本中引用这些...

liquibase {
  activities {
    main {
      changeLogFile 'src/main/resources/db.changelog-1.0.xml'
      url '${url}'
      username '${username}'
      password '${password}'
    }
  }
}

我还想通过运行“gradle build”来做到这一点,而不必在命令行上指定任何其他参数。我该怎么做?

谢谢,- 戴夫

【问题讨论】:

  • 您应该将文件 liquibase.properties 放在项目根目录下。然后,这个文件可以直接在 build.gradle 中使用,并且应该用于过滤(ReplaceTokenssrc/main/resources 下的项目属性文件。 build.gradle 不应读取项目资源。

标签: gradle environment-variables build-script


【解决方案1】:

您可以加载属性文件,然后从中获取值...这是一个示例

liquibase {
  activities {
    main {
      File propsFile = new File("${project.rootDir}/src/main/resources/liquibase.properties")
      Properties properties = new Properties()
      properties.load(new FileInputStream(propsFile))
      changeLogFile 'src/main/resources/db.changelog-1.0.xml'
      url properties['url']
      username properties['username']
      password properties['password']
    }
  }
}

【讨论】:

    猜你喜欢
    • 2016-08-22
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 2016-07-19
    • 2015-02-26
    • 1970-01-01
    • 2017-02-10
    相关资源
    最近更新 更多