Gradle通过插件添加对另一个源集的依赖



我有一个Gradle插件,添加了一个scratch源集。我希望在src/main/java/中定义的类在src/scratch/java中可用。我已经知道如何在构建文件中做到这一点,但我想让我的插件这样做:

dependencies {
scratchImplementation sourceSets.main.output
//...
}

我的插件如何使用Gradle API做到这一点?

我把Jeff的例子拼凑在一起:project.dependencies.add(project.getConvention().getPlugin(JavaPluginConvention).sourceSets.getByName("main").output);

但是除了在Gradle 7.2中被弃用之外,Gradle似乎不喜欢add调用:

找不到add()方法用于对象的参数[main classes]类型org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler

Tim的建议使用扩展而不是约定避免了弃用。最初,当我尝试它时,我得到了一个错误,但现在似乎已经清除了。

在此期间,我发现同样有效的是:

project.dependencies {
// add dependency on main java code from scratch java code
scratchImplementation project.extensions.getByType(JavaPluginExtension).sourceSets.getByName(SourceSet.MAIN_SOURCE_SET_NAME).output
}

(虽然我不完全确定为什么)

相关内容

  • 没有找到相关文章

最新更新