1.)在预定义数据库2中运行liquibase变更集。)对数据库3运行多个测试。)回滚使用前一个变更集所做的所有更改
每次测试时,我都希望数据库处于“干净”状态。它应该只有我期望的变化,没有其他。liquibase使用Gradle插件进行设置,并应用/更新变更集。但是,我不想手动调用该命令。这将是需要在持续集成中运行的东西,所以我需要编写脚本,让配置项调用一个任务,然后按顺序运行每个任务,直到结束。我不确定如何从Gradle命令行任务本身的内部(即build.Gradle文件的内部)调用该命令行任务,然后向其传递参数(因为在调用更新之前,我需要调用某种类型的回滚命令任务来使数据库保持原样)。
现在,我所做的就是像这样调用命令行任务:
$ gradle update
$ gradle test
$ gradle rollbackToDate -PliquibaseCommandValue=2016-05-25
同样,我不能单独通过命令行调用它们。我需要一个自定义任务在Gradle内,这样我就可以调用类似的东西:
$ gradle runDatabaseTests
...我会让它做我想做的一切。
没有直接从另一个任务调用任务的分级方法。您可以做的是使用dependson
或finalizedby
设置任务依赖项,这将强制先运行prereq任务。
如果声明任务:
task runDatabaseTests(dependsOn: [update, test, rollbackToDate]) << {
println "I depend on update, test and rollbackToDate"
}
当你打电话的时候
gradle runDatabaseTests -PliquibaseCommandValue=2016-05-25
你可以以列表的形式在命令行中一次调用多个任务. 例如 gradle compile test 命令会依次调用 compile 和 test 任务, 它们所依赖的任务也会被调用. 这些任务只会被调用一次, 无论它们是否被包含在脚本中:即无论是以命令行的形式定义的任务还是依赖于其它任务都会被调用执行.来看下面的例子. 下面定义了四个任务 dist和test 都 依赖于 compile ,只用当 com
你可以用命令行选项-x来排除某些任务,让我们用上面的例子来示范一下. 例子 11.2. 排除任务 gradle dist -x test 命令的输出 > gradle dist -x test :compile compiling source :dist building the distribution BUILD SUCCESSFUL Total time: 1 secs 可以看到, tes
我试图找到从命令行传递gradle任务参数的最佳方法。我有这个任务。我想从学生练习中解包解决方案,并将它们复制到项目中的正确位置,以突出它们。我这样称呼这个任务: 这是gradle任务: 你有什么建议来优化这个过程吗?
当你试图调用某个任务的时候, 你并不需要输入任务的全名. 只需提供足够的可以唯一区分出该任务的字符即可. 例如, 上面的例子你也可以这么写. 用 gradle di 来直接调用 dist 任务: 例 11.3. 简化任务名 gradle di 命令的输出 > gradle di :compile compiling source :compileTest compiling unit tests
我在用Gradle。我有两个任务:“A”和“B”。我想让任务“A”调用任务“B”。我怎么能这么做? 是否可以简单地从现有任务中调用另一个任务?
主要内容:定义任务,任务依赖关系,定位任务,向任务添加依赖关系,向任务添加描述,跳过任务,参考 -Gradle构建脚本描述一个或多个项目。每个项目都由不同的任务组成。任务是构建执行的一项工作。任务可以是编译一些类,将类文件存储到单独的目标文件夹中,创建JAR,生成Javadoc或将一些归档发布到存储库。 定义任务 任务是用于将任务定义到构建脚本中的关键字。看看下面的例子,它是一个叫作 hello 的任务,将打印一个字符串:。将以下脚本复制并保存到 文件中。 此构建脚本定义一个名称为 “hell