小编CMe*_*ill的帖子

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

我已经构建了一个在另一个 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 …
Run Code Online (Sandbox Code Playgroud)

java plugins gradle

8
推荐指数
1
解决办法
1956
查看次数

为什么Gradle不在本地Maven存储库中查找插件?

我已经构建了Gradle插件并将其发布到本地Maven存储库。我可以在我的〜/ .m2 /存储库中看到它。但是,当我运行Gradle项目以使用此插件时,它甚至不在本地存储库中查找……至少,不是基于输出。

当从命令行运行时,它将报告此情况:

失败:构建失败,发生异常。

其中:构建文件“ D:\ Work \ MuseProject \ update4j-gradle-plugin \ example \ build.gradle”行:15

出了什么问题:在以下任何来源中均未找到插件[id:'net.christophermerrill.gradle.update4j',版本:'0.1']:

-Gradle Core插件(插件不在“ org.gradle”命名空间中)

-插件存储库(无法解析插件工件'net.christophermerrill.gradle.update4j:net.christophermerrill.gradle.update4j.gradle.plugin:0.1')

在以下存储库中搜索:Gradle Central插件存储库

我已经将mavenLocal()添加到buildscript配置中。我也尝试添加特定的依赖项(如在其他地方建议的那样),没有任何效果

buildscript {
  repositories {
      mavenLocal()
  }
  dependencies {
      classpath 'net.christophermerrill:update4j-gradle-plugin:0.1'
  }
}
Run Code Online (Sandbox Code Playgroud)

从输出中可以最好地看出,它甚至没有在本地存储库中查找,但我不确定100%。使用--scan和--info选项不会提供任何其他信息-它们似乎根本不起作用,我怀疑这是因为失败出现在插件完成加载之前(只是猜测)。

有没有办法确定Gradle是否在本地Maven仓库中寻找?我正在尝试消除这种可能性。当然,另一种选择是我的插件未正确发布。在我解决了这个问题之后,这将是我的下一个问题:)

java plugins gradle

4
推荐指数
1
解决办法
6005
查看次数

标签 统计

gradle ×2

java ×2

plugins ×2