当前位置: 首页 > 面试题库 >

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

金高飞
2023-03-14
问题内容

我已经构建了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'
  }
}

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

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


问题答案:

我认为指定自定义插件存储库看起来很有希望:此功能可让您配置plugins{}DSL以从gradle插件门户网站之外的其他存储库中进行解析。我认为您希望通过以下方式settings.gradle使用配置进行更新:

pluginManagement {
  repositories {
      mavenLocal()
      gradlePluginPortal()
  }
}

(请注意,此代码块需要显示在的顶部settings.gradle)。



 类似资料:
  • 我正在编写一个自定义Gradle插件来为所有项目添加公共资源。例如,所有微服务都使用SpringBoot web、sleuth和其他常见的依赖项。 因此,决定将创建一个独立的项目,并将插件导出为jar,然后将插件应用于其他项目。

  • 问题内容: 我的Maven配置有一个小问题。此处的所有其他问题和答案都不能解决我的问题,因此,我开始了一个新问题。 我的问题是,我的Maven没有使用本地存储库。它总是从远程存储库中获取工件。 当下载工件或构建项目时,它将安装在本地存储库中,因此路径正确。 问题是:当我构建一个SNAPSHOT项目时,它仅安装在本地存储库中(应该是这样,不想每次都将其发布在我的关系上)。当我在pom.xml中构建另

  • 我的Maven配置有一个小问题。这里所有其他的问题和答案都没有解决我的问题,所以我要开始一个新的问题。 我的问题是,我的Maven没有使用本地存储库。它总是从远程存储库中获取工件。 当下载工件或构建项目时,它被安装在本地存储库中,因此路径是正确的。 问题是:当我构建一个快照项目时,它只安装在本地存储库中(应该是这样的,不要每次都在我的nexus上发布)。当我构建另一个项目时,在pom.xml中有前

  • 在第一次评估Artifactory之后,我发现在进行初始设置并选择Maven和Gradle集成时,它为我创建了两组存储库,这让我感到困惑 平台-gradle-dev-local 平台-分级-发布-本地 平台-libs-release-local 平台-libs-snapshot-local 有什么理由使用两个gradle repos,或者我可以对所有构建都使用标准的Maven repos吗?Gra

  • 我们有一个nexus服务器,它有一个公共maven公共存储库组,其中包含每个外部代理存储库(例如maven central)。此外,我们还有一个本地托管存储库。让我们称之为MyProjectRepository。它分为发布回购和快照回购。 所以,现在看起来是这样的: MyProjectRepository 我的项目存储库-快照 工件一 快照-5 ... 快照-1 快照-3 ... 快照-1 好吧,

  • 我有在源存储库中提交的jar,我需要将其用作maven项目中的依赖项。经过研究,添加特定于项目的本地存储库似乎是最干净的方式。请注意,此存储库将特定于此项目,不同于我机器上. m2目录下的本地存储库。pom是war类型,我已经像下面的描述一样定义了存储库: 在lib目录中是jar的路径,没有其他文件: com/my公司/东西/我的神器/1.0.0/my-artifact-1.0.0.jar. 此依