如何将自定义插件发布到Maven本地仓库,并在另一个本地项目中使用它?

14

我已经开发了一个Gradle插件,它在另一个Gradle项目的buildSrc下工作得很好。现在我把它移到自己的项目中,并想将其发布到本地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仓库时,我发现了插件标记工件,它们似乎是正确的,但我不太确定。

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命令以显示问题,例如:

And the in the example folder, run any gradlew command to show the problem, e.g.


gradlew run

在 https://stackoverflow.com/questions/39662663/using-gradle-to-publish-jars-to-mavenlocal?rq=1 和 https://dev59.com/GlsW5IYBdhLWcg3wKkre 中已经有解答了。 - kisna
1个回答

11

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接