前言:目标是复制 maven 父 pom 功能,该功能将插件、存储库、配置等应用于不在同一存储库上的项目。
我有一个插件,它将其他插件应用于项目,并配置一些存储库,ala
class BarPlugin implements Plugin<Project> {
@Override
void apply(Project p) {
project.pluginManager.apply("java");
project.pluginManager.apply("jacoco");
project.allProjects {
configuration -> configuration.repositories { mavenCentral(); }
};
}
}
据我阅读的 api,我无法使用这样的构造来添加具有给定版本的插件,例如plugin id 'com.foo.bar' version '1'
,因为插件管理器和插件属性都没有方法来应用具有给定版本的插件,并且该插件必须已经存在于类路径上才能这样应用。
在阅读https://docs.gradle.org/8.11.1/userguide/sharing_build_logic_between_subprojects.html#sec:convention_plugins后,我开始考虑将插件转换为约定插件,但似乎指南仅涉及单存储库设置,其中所有模块都可以通过通用 settings.gradle 文件相互查看。这适用于多存储库设置吗?buildsrc
在这种情况下是否对目录进行评估?