- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试获取 Gradle 的 mustRunAfter
和 finalizedBy
只为特定任务工作。以这个例子build.gradle
:
task removeTestDatabaseContainer {
doLast {
println '\ninside removeTestDatabaseContainer\n'
}
}
task startTestDatabaseContainer {
doLast {
println '\ninside startTestDatabaseContainer\n'
}
finalizedBy removeTestDatabaseContainer
}
task flywayMigrate { t->
doLast {
println '\n inside flywayMigrate\n'
}
}
task flywayClean { t->
doLast {
println '\n inside flywayClean\n'
}
}
task testEverything {
dependsOn startTestDatabaseContainer
dependsOn flywayMigrate
dependsOn flywayClean
flywayMigrate.mustRunAfter startTestDatabaseContainer
flywayMigrate.finalizedBy flywayClean
flywayClean.mustRunAfter flywayMigrate
flywayClean.finalizedBy removeTestDatabaseContainer
}
testEverything
作品。我想要从该任务中获得的输出:
➜ gradle testEverything
Parallel execution is an incubating feature.
:startTestDatabaseContainer
inside startTestDatabaseContainer
:flywayMigrate
inside flywayMigrate
:flywayClean
inside flywayClean
:removeTestDatabaseContainer
inside removeTestDatabaseContainer
:testEverything
BUILD SUCCESSFUL
Total time: 0.597 secs
flywayMigrate
时我遇到了意想不到的问题。这是输出:
➜ gradle flywayMigrate
Parallel execution is an incubating feature.
:flywayMigrate
inside flywayMigrate
:flywayClean
inside flywayClean
:removeTestDatabaseContainer
inside removeTestDatabaseContainer
BUILD SUCCESSFUL
Total time: 0.605 secs
flywayMigrate
运行。
问题 1) 我该如何制作
testEverything
照常工作,同时拥有
gradle flywayMigrate
仅调用
flywayMigrate
-任务?
task testEverything {}
括号内的所有内容有关。是配置,始终由 Gradle 处理。所以任何
mustRunAfter
/
finalizedBy
我在一个任务内设置将具有“全局效果”。但在那种情况下,为什么不
gradle flywayMigrate
调用
startTestDatabaseContainer
? (因为
flywayMigrate.mustRunAfter startTestDatabaseContainer
任务中的行
testEverything
。)
mustRunAfter
仅当两个任务都运行时才生效。
finalizedBy
另一方面,只有在运行它设置的任务时才会生效。这就是为什么
flywayClean
和
removeTestDatabasContainer
当我执行
gradle flywayMigrate
时运行.
gradle testEverything
像上面一样工作,同时得到
gradle flywayMigrate
只需执行
flywayMigrate
.
最佳答案
感谢 eskatos 在 Freenode 上 #gradle 的帮助,我找到了一个解决方案。这只是为了删除我拥有的 finalizedBy-lines。更新的 build.gradle 有效:
task removeTestDatabaseContainer {
doLast {
println '\ninside removeTestDatabaseContainer\n'
}
}
task startTestDatabaseContainer {
doLast {
println '\ninside startTestDatabaseContainer\n'
}
finalizedBy removeTestDatabaseContainer
}
task flywayMigrate { t->
doLast {
println '\n inside flywayMigrate\n'
}
}
task flywayClean { t->
doLast {
println '\n inside flywayClean\n'
}
}
task testEverything {
dependsOn startTestDatabaseContainer
dependsOn flywayMigrate
dependsOn flywayClean
flywayMigrate.mustRunAfter startTestDatabaseContainer
//flywayMigrate.finalizedBy flywayClean
flywayClean.mustRunAfter flywayMigrate
//flywayClean.finalizedBy removeTestDatabaseContainer
}
关于Gradle 的 mustRunAfter/finalizedBy 仅用于特定任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46400284/
这个gradle片段是否有更紧凑的方法: A.dependsOn X B.dependsOn X C.dependsOn X D.mustRunAfter X E.mustRunAfter X F.m
我在gradle中定义了一个任务: task makePretty(type: Delete) { println "Make it pretty!" } 我希望它在 android 组装并添
我正在尝试获取 Gradle 的 mustRunAfter和 finalizedBy只为特定任务工作。以这个例子build.gradle : task removeTestDatabaseContai
Gradle 通常会自行确定任务顺序,这通常没问题,但有时您需要任务顺序。 基于the User Guide和 other discussion here看来有两种基本的任务排序方式: 使用依赖关系,
不管是taskB mustRunAfter taskA,还是taskB依赖于taskA,貌似taskA先运行,taskB再运行。有什么不同? 最佳答案 例如: tasks.create('a') ta
我对 shouldRunAfter 中的时间和哪一个有疑问和 mustRunAfter在 gradle 中订购任务时应该使用。 最佳答案 这一切都记录得很好,请看 here .尤其: When you
我是一名优秀的程序员,十分优秀!