我已经构建了一个Gradle插件,该插件在另一个Gradle项目的buildSrc下运行良好 . 现在我已将它移动到自己的项目中,并希望将其发布到我的本地Maven仓库,以便我可以在原始项目中使用(在buildSrc中没有它) . 当然,长期目标是将其发布给其他人 .
问题是在发布之后,其他项目找不到它 . 我可以看到〜/ .m2 / repository中的文件,它们看起来是正确的(我能说的最好) . 我在两个项目中尝试了十几种插件ID,组ID和项目名称组合,这些都导致无法在另一个项目中加载插件:
在以下任何来源中都找不到插件[id:'update4j-gradle-plugin',版本:'0.1']:Gradle Core插件(不是核心插件,请参阅https://docs.gradle.org/ 4.9 / userguide / standard_plugins.html可用的核心插件)插件存储库(无法解析插件工件'update4j-gradle-plugin:update4j-gradle-plugin.gradle.plugin:0.1')在以下存储库中搜索:Gradle Central Plugin Repository
当我去看看我当地的Maven回购时,我找到了Plugin Marker Artifacts,它们看似正确,但我真的不知道 .
Gradle中的插件设置和发布配置是:
group 'net.christophermerrill'
version '0.1'
gradlePlugin {
plugins {
update4j {
id = 'update4j-gradle'
implementationClass = 'net.christophermerrill.update4j.gradle.Update4jPlugin'
}
}
}
publishing {
repositories {
mavenLocal()
}
}
插件是从其他项目引用的,如下所示:
id 'update4j-gradle' version '0.1'
整个项目都在GitHub上:https://github.com/ChrisLMerrill/update4j-gradle-plugin所以你可以查看并尝试一下 . 构建主项目并从根文件夹发布它:
gradlew publishToMaventLocal
在示例文件夹中,运行任何gradlew命令来显示问题,例如
gradlew run
1 回答
答案是我所拥有的一切都是正确的,但是在settings.gradle中需要一个pluginManagement块来读取非标准存储库中的插件 . 这是这个问题的公认答案:
Why does Gradle not look in the local maven repository for plugins?