Kun*_*nal 4 build-process gradle
是)我有的?
gradle构建脚本
apply plugin:'application'mainClassName ="MainApp"sourceSets.main.java.srcDirs = ['.'']
所以,当我这样做时gradle run,它会执行main方法,一切都很完美.
C:\tmp\gradle-fun>gradle run :compileJava :processResources UP-TO-DATE :classes :run Hello MainApp !! BUILD SUCCESSFUL
我想做的事?
现在我想知道在run任务执行之前清理构建目录的干净任务(常见构建任务).
这背后有理由,我想确保每次gradle都应该编译java文件,并且应该刷新所有.class文件(它的一些要求)
我试过了什么?
添加了一个包装器任务,它按顺序执行干净任务和运行任务.
apply plugin: 'application'
mainClassName = "MainApp"
sourceSets.main.java.srcDirs = ['.']
task exec(dependsOn: ['clean', 'run'])
Run Code Online (Sandbox Code Playgroud)
因此,当我跑步时gradle exec,它可以正常工作.但是,当你有额外的任务只是为了执行订单时,我觉得它的补丁工作.
C:\tmp\gradle-fun>gradle run :clean :compileJava :processResources UP-TO-DATE :classes :run Hello MainApp !! :exec BUILD SUCCESSFUL
我想知道什么?
有没有办法避免编写包装器任务并做一些Gradle魔法来达到要求?
只是让run任务依赖clean.这将确保在每次运行之前清理您的项目.如果您想要更具体地了解您的用例,您只需清理compileJava任务即可.
run.dependsOn 'cleanCompileJava'
Run Code Online (Sandbox Code Playgroud)
编辑:为避免在运行之前删除您的类,请添加:
classes.mustRunAfter 'cleanCompileJava'
Run Code Online (Sandbox Code Playgroud)
您可以使用clean和run作为依赖项创建自己的任务:
task cleanRun(dependsOn: [clean, run])
Run Code Online (Sandbox Code Playgroud)
或者,您可以按照Mark Vieira的回答更改接线:
run.dependsOn 'clean'
classes.mustRunAfter 'clean'
Run Code Online (Sandbox Code Playgroud)
第二行确保它不会清理已编译的类.
希望这有助于=)
| 归档时间: |
|
| 查看次数: |
2373 次 |
| 最近记录: |