gradle:如何编写groovy任务
我一直在努力解决这个问题。这似乎是我想做的一件非常简单的事情,但我就是不知道如何让它工作 我想编写一个外部groovy文件来定义一个任务,然后在gradle:如何编写groovy任务,gradle,groovy,Gradle,Groovy,我一直在努力解决这个问题。这似乎是我想做的一件非常简单的事情,但我就是不知道如何让它工作 我想编写一个外部groovy文件来定义一个任务,然后在build.gradle中调用该任务。这是我的build.gradle文件: // Apply the groovy plugin to add support for Groovy apply plugin: 'groovy' // In this section you declare where to find the dependencies
build.gradle
中调用该任务。这是我的build.gradle
文件:
// Apply the groovy plugin to add support for Groovy
apply plugin: 'groovy'
// In this section you declare where to find the dependencies of your project
repositories {
// Use 'jcenter' for resolving your dependencies.
// You can declare any Maven/Ivy/file repository here.
jcenter()
}
// In this section you declare the dependencies for your production and test code
dependencies {
// We use the latest groovy 2.x version for building this library
compile 'org.codehaus.groovy:groovy-all:2.4.7'
compile gradleApi()
compile localGroovy()
// We use the awesome Spock testing and specification framework
testCompile 'org.spockframework:spock-core:1.0-groovy-2.4'
testCompile 'junit:junit:4.12'
}
task myTask (type: my.package.MyTask)
然后,在src/main/groovy/my/package
下,我有MyTask.groovy
:
package my.package
import org.gradle.api.DefaultTask
import org.gradle.api.tasks.TaskAction
class MyTask extends DefaultTask {
String greeting = 'hello from MyTask'
@TaskAction
def greet(){
println greeting
}
}
我甚至不能列出任务:
$ gradle tasks
FAILURE: Build failed with an exception.
* Where:
Build file '/projects/gradle/build.gradle' line: 21
* What went wrong:
A problem occurred evaluating root project 'gradle'.
> Could not get unknown property 'my' for root project 'gradle' of type org.gradle.api.Project.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 3.193 secs
在这一点上,我完全不知道发生了什么,也不知道如何去做我想做的事情。这似乎是最简单的例子,但遵循用户指南并没有让我有所收获。不管我做什么,我都不能通过那个例外
如何编写groovy文件并使用它在构建文件中定义新任务?您必须将groovy文件放在以下位置:
rootProjectDir/buildSrc/src/main/groovy
参考:
编辑
我从未尝试过更改buildSrc
的位置,但这似乎是一个未解决的问题:(如果我错了,请更正)您必须将groovy文件放在以下位置:
rootProjectDir/buildSrc/src/main/groovy
参考:
编辑
我从未尝试过更改buildSrc
的位置,但这似乎是一个未解决的问题:(如果我错了,请更正)现在您已经将src移动到buildSrc,您还需要修复MyTask.groovy中的一个小错误: 而不是
import org.gradle.api.tasks.DefaultTask
使用
这应该可以修复您的
@TaskAction
注释。现在您已经将src移动到buildSrc,您还需要修复MyTask.groovy中的一个小错误:
而不是
import org.gradle.api.tasks.DefaultTask
使用
这应该可以修复您的
@TaskAction
注释。好的,我现在遇到了一个新错误,谢谢。旁注:有没有办法改变这种状况?我正在努力学习这一点,这样我可以为一个更大的项目做出贡献,但这个更大的项目没有buildSrc folderok,我现在遇到了一个新错误,所以谢谢。旁注:有没有办法改变这种状况?我试图学习这一点,这样我就可以为一个更大的项目做出贡献,但这个更大的项目没有buildSrc文件夹