当前位置: 首页 > 知识库问答 >
问题:

具有groovy环境的flyway gradle插件

洪季萌
2023-03-14

我正在尝试自定义gradle以构建从groovy文件中获取flyway属性

environments {
    dev {
        flywayProperties {
            driver="oracle.jdbc.driver.OracleDriver"
            url="jdbc:oracle:thin:@localhost:1521/XE"
            user="test"
            password="test"
            locations= "classpath:db/migration,db/insert"   
        }
    }

    qa {
        flywayProperties {
            driver = "oracle.jdbc.driver.OracleDriver"
            url = "jdbc:oracle:thin:@localhost:1521/XE"
            user = "test"
            password = "test"
            locations = "classpath:db/migration"
        }
    }
}
loadConfiguration()

task printProps << {
    println "Driver:  $config.flywayProperties.driver"
    println "URL:  $config.flywayProperties.url"
    println "User:  $config.flywayProperties.user"
    println "Password:  $config.flywayProperties.password"
    println "Locations:  $config.flywayProperties.locations"
}

def loadConfiguration() {
    def environment = hasProperty('env') ? env : 'dev'
    project.ext.envrionment = environment
    println "Environment is set to $environment"

    def configFile = file('environment.groovy')
    println configFile.toURL()

    def config = new ConfigSlurper("$environment").parse(configFile.toURL())
    project.ext.config = config
}

flyway {
    driver = "$config.flywayProperties.driver"
    url = "${config.flywayProperties.url}"
    user = "${config.flywayProperties.user}"
    password = "${config.flywayProperties.password}"
    //locations = ['classpath:db/migration' , 'db/insert']   -- Works fine
    locations = "${config.flywayProperties.locations}" -- Throws below error
}

共有1个答案

彭鸿文
2023-03-14

你有没有试过:

 locations = config.flywayProperties.locations

 类似资料:
  • 我正在构建Jenkins的Docker映像,并已将ENV变量传递给< code>jenkins.sh初始化文件: Dockerfile文件 詹金斯. sh 当我运行图像时,这些值可以完美地打印出来,但是我想在Jenkins初始化期间在Groovy脚本中使用它们。 以下在启动期间引发错误: 错误 警告:无法运行脚本文件:/var/jenkins_home/init.groovy.d/init_ecs

  • 它是可能的使用流浪汉设置一个环境为php开发与一些工具,如PHP_CodeSniffer,PHP混乱检测器等,然后使用sublime文本插件sublime-phpcs在主机上使用这些工具从流浪汉? 我想避免在我的主机(mac os)中安装所有这些工具,但仍然使用带有插件的Sublime文本在主机中进行开发。 谢谢!

  • 问题内容: 我正在将Jenkins与Testswarm和此插件一起使用(派生资源)。 我想为Testswarm获取一个“工作名称”,其中包含詹金斯的工作名称,内部版本号和svn修订版号。 将JOB_NAME放在配置字段中无济于事,该变量不会被其值替换。 因此,我修改了插件源代码以获取Jenkins环境变量,但我得到的只是“空”变量。 这是罪魁祸首代码。(在第205行的src / main / ja

  • 问题内容: 我认为这是另一个简单的问题,但是我无法使用任何Web解决方案。我的项目有一个版本号。每个数字都可以用“。”分隔。或“ _”。我想要一个仅显示前两个数字的变量。 我尝试编写一个普通的脚本来创建Jenkins环境变量。 我想使用前两位数字而不是整个字符串。 我是否正确执行此操作,甚至可以创建一个新的环境变量,并且对此有更好的解决方案吗? 问题答案: 以下groovy片段应传递版本(如您所提

  • 本文向大家介绍webpack写jquery插件的环境配置,包括了webpack写jquery插件的环境配置的使用技巧和注意事项,需要的朋友参考一下 客户需求要一个具备树结构、带复选框的下拉选择控件;在网上找到了select2、autocomplete都不满足要求。于是自己用ztree加bootstrap dropdown组合开发了一个下拉树选择控件。决定用webpack打包,开发一个完整的jque

  • 我有一个使用groovy插件的gradle项目。groovy还交叉编译java类。没有java插件,只有和更高版本的 intellij导入了该项目,但它使用sourceCompatibility<1.8(系统中只安装了Java8)。工作时没有任何问题。 向.gradle文件添加什么使intellij使用1.8 SourceCompatibility?