如何在自定义gradle插件中获取project.sourceSets.test.runtimeClasspath
我想创建gradle插件,它将添加额外的任务,类型为JavaExec 我有一个插件:如何在自定义gradle插件中获取project.sourceSets.test.runtimeClasspath,gradle,groovy,Gradle,Groovy,我想创建gradle插件,它将添加额外的任务,类型为JavaExec 我有一个插件: class CustomPlugin implements Plugin<Project> { @Override void apply(Project project) { project.task('generate', type: JavaExec) { main = 'some.package.ClassWithMainInTestScope' ar
class CustomPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
project.task('generate', type: JavaExec) {
main = 'some.package.ClassWithMainInTestScope'
args = ['some', 'arguments']
classpath project.sourceSets.test.runtimeClasspath
}
}
}
问题是:如何在插件中获取project.sourceset 试试看:
final JavaPluginConvention javaPlugin = getProject().getConvention().getPlugin(JavaPluginConvention.class);
final SourceSetContainer sourceSets = javaPlugin.getSourceSets();
final SourceSet smoketest = sourceSets.findByName("smoketest");
this.testClasspath = smoketest.getRuntimeClasspath();
它工作
我喜欢这样:
project.task('generate', type: JavaExec) {
doFirst {
def javaPluginConvention = project.getConvention().getPlugin(JavaPluginConvention)
classpath javaPluginConvention.getSourceSets().findByName("test").getRuntimeClasspath()
}
main = 'some.package.ClassWithMainInTestScope'
args = ['some', 'args']
}
一切都好
project.task('generate', type: JavaExec) {
doFirst {
def javaPluginConvention = project.getConvention().getPlugin(JavaPluginConvention)
classpath javaPluginConvention.getSourceSets().findByName("test").getRuntimeClasspath()
}
main = 'some.package.ClassWithMainInTestScope'
args = ['some', 'args']
}