如何在Gradle Liquibase插件的runList字段中包含多个活动?

时间:2015-10-23 15:35:12

标签: testing plugins gradle liquibase

我在Mac Yosemite上使用Gradle 2.7和Java 8.我正在使用Liquibase 1.1.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-master.xml'
      url properties['url']
      username properties['username']
      password properties['password']
    }
    test {
        url 'jdbc:h2:file:target/testdb'
        username 'sa'
    }
    runList = (
        "test"
        "main"
    )
  }
}

但我无法弄清楚runList的正确语法。运行上面的代码时出错...

* Where:
Build file '/Users/myuser/Dropbox/cb_workspace/cbmyproject/build.gradle' line: 163

* What went wrong:
Could not compile build file '/Users/myuser/Dropbox/cb_workspace/cbmyproject/build.gradle'.
> startup failed:
  build file '/Users/myuser/Dropbox/cb_workspace/cbmyproject/build.gradle': 163: expecting ')', found 'main' @ line 163, column 2.
        "main"  
      ^

  1 error


* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

1 个答案:

答案 0 :(得分:2)

根据其中一个示例, runList 必须放在 活动 块之后:

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-master.xml'
      url properties['url']
      username properties['username']
      password properties['password']
    }
    test {
        url 'jdbc:h2:file:target/testdb'
        username 'sa'
    }
  }

  runList = 'test, main'
}

请参阅示例here

希望这有帮助。