dev*_*dev 31 continuous-integration gradle
我正在gradle中完成一项需要调用许多其他任务的任务.
这就是我所拥有的:
task ci(dependsOn: [
clean,
build,
test
])
Run Code Online (Sandbox Code Playgroud)
奇怪的是我看到的输出:
gradle ci
:compileJava
:processResources UP-TO-DATE
:classes
:jar
:assemble
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:clean // cleaning after the build
:build
:ci
Run Code Online (Sandbox Code Playgroud)
请注意,清理发生在构建目标之后,这会清除我的构建.
如果我将任务更改为:
task ci(dependsOn: [
clean,
test
])
Run Code Online (Sandbox Code Playgroud)
然后它似乎以正确的顺序执行:
:clean UP-TO-DATE // cleaning before the build
:compileJava
:processResources UP-TO-DATE
:classes
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:ci UP-TO-DATE
Run Code Online (Sandbox Code Playgroud)
我尝试通过添加build.dependsOn clean来修复原始目标,但这似乎没有任何影响.
任何帮助表示赞赏.
dev*_*dev 41
似乎我偶然发现了在GRADLE-427中争论的问题,其中gradle确定了执行任务的最佳顺序.我通过遵循Gradle用户指南 - 第15.5节中记录的建议来解决我的问题,以建立不同任务之间的排序.因此,我的最终ci目标显示为:
task ci(dependsOn: ['clean', 'build', 'uploadArchives'])
build.mustRunAfter clean
uploadArchives.mustRunAfter build
Run Code Online (Sandbox Code Playgroud)
现在一切都按预期工作了.
TLDR版本:这是我在我的一个项目中做到的方式(没有引入人工依赖).
//--- build aliases : define a synonym here if you want a shortcut to run multiple targets
def buildAliases = [
'all' : ['clean', 'assemble', 'runProvisioner', 'stopTomcat', 'installTomcat', 'deployToTomcat', 'startTomcat'],
'rebuild' : ['clean', 'assemble']
]
def expandedTaskList = []
gradle.startParameter.taskNames.each {
expandedTaskList << (buildAliases[it] ? buildAliases[it] : it)
}
gradle.startParameter.taskNames = expandedTaskList.flatten()
println "\n\n\texpanded task list: ${gradle.startParameter.taskNames }\n\n"
Run Code Online (Sandbox Code Playgroud)
为了使用这些别名,请将它们称为任务.例子:
./gradlew all
./gradlew rebuild
Run Code Online (Sandbox Code Playgroud)
要么
gradle all
gradle rebuild
Run Code Online (Sandbox Code Playgroud)
有关更多背景,请参阅:
https://caffeineinduced.wordpress.com/2015/01/25/run-a-list-of-gradle-tasks-in-specific-order/
| 归档时间: |
|
| 查看次数: |
25879 次 |
| 最近记录: |