CMe*_*ill 8 java plugins gradle
我已经构建了一个在另一个 Gradle 项目的 buildSrc 下运行良好的 Gradle 插件。现在我已将它移到自己的项目中,并希望将其发布到我的本地 Maven 存储库,以便我可以在原始项目中使用(在 buildSrc 中没有它)。当然,长期目标是将其发布给其他人。
问题是发布后,其他项目找不到。我可以在 ~/.m2/repository 中看到这些文件,它们看起来是正确的(据我所知)。我在两个项目中尝试了十几种插件 id、组 id 和项目名称组合的变体,它们都导致无法在另一个项目中加载插件:
插件 [id: 'update4j-gradle-plugin', version: '0.1'] 未在以下任何来源中找到:
Gradle 核心插件(不是核心插件,请参阅https://docs.gradle.org/4.9/userguide/standard_plugins.html了解可用的核心插件)
插件存储库(无法解析插件工件 'update4j-gradle-plugin:update4j-gradle-plugin.gradle.plugin:0.1')
在以下存储库中搜索:
Gradle 中央插件库
当我查看本地 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()
}
}
Run Code Online (Sandbox Code Playgroud)
该插件是从其他项目中引用的,如下所示:
id 'update4j-gradle' version '0.1'
Run Code Online (Sandbox Code Playgroud)
整个项目都在 GitHub 上:https : //github.com/ChrisLMerrill/update4j-gradle-plugin, 因此您可以查看并尝试一下。构建主项目并从根文件夹发布它:
gradlew publishToMaventLocal
Run Code Online (Sandbox Code Playgroud)
在示例文件夹中,运行任何 gradlew 命令来显示问题,例如
gradlew run
Run Code Online (Sandbox Code Playgroud)
答案是我所拥有的一切都是正确的,但是settings.gradle中需要一个pluginManagement块才能从非标准存储库中读取插件。这是关于这个问题的公认答案:
为什么 Gradle 不在本地 Maven 存储库中查找插件?
| 归档时间: |
|
| 查看次数: |
1956 次 |
| 最近记录: |