gpt4 book ai didi

java - 如何将自定义插件发布到Maven本地,然后在另一个本地项目中使用?

转载 作者:行者123 更新时间:2023-11-30 02:04:22 25 4
gpt4 key购买 nike

我已经构建了一个 Gradle 插件,它在另一个 Gradle 项目的 buildSrc 下运行得很好。现在我已经将它移动到自己的项目中,并希望将其发布到我的本地 Maven 存储库,以便我可以在原始项目中使用(在 buildSrc 中没有它)。当然,长期目标是为其他人发布它。

问题是发布后,其他项目找不到它。我可以在 ~/.m2/repository 中看到这些文件,它们看起来是正确的(据我所知是最好的)。我在这两个项目中尝试了十几种插件 id、组 id 和项目名称组合的变体,它们都导致在另一个项目中加载插件失败:

Plugin [id: 'update4j-gradle-plugin', version: '0.1'] was not found inany of the following sources:

Gradle Core Plugins (not a core plugin, please see https://docs.gradle.org/4.9/userguide/standard_plugins.html foravailable core plugins)

Plugin Repositories (could not resolve plugin artifact 'update4j-gradle-plugin:update4j-gradle-plugin.gradle.plugin:0.1')

Searched in the following repositories:

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 publishToMavenLocal

然后在 example 文件夹中,运行任何 gradlew 命令来显示问题,例如

gradlew run

最佳答案

答案是我所拥有的一切都是正确的,但是 settings.gradle 中需要一个 pluginManagement block ,以便从非标准存储库读取插件。这是这个问题的公认答案:

Why does Gradle not look in the local maven repository for plugins?

关于java - 如何将自定义插件发布到Maven本地,然后在另一个本地项目中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51774706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com