当前位置: 首页 > 知识库问答 >
问题:

在Maven本地存储库中找不到自定义Gradle插件

夹谷茂
2023-03-14

我正在编写一个自定义Gradle插件来为所有项目添加公共资源。例如,所有微服务都使用SpringBoot web、sleuth和其他常见的依赖项。

因此,决定将创建一个独立的项目,并将插件导出为jar,然后将插件应用于其他项目。

plugins {
    id 'java-gradle-plugin'
    id 'test-common'
}

gradlePlugin {
    plugins {
        simplePlugin {
            id = 'test.resource-plugin'
            implementationClass = 'com.test.CommonResource'
        }
    }
}
public class CommonResourcesPlugin implements Plugin<Project> {
    @Override
    public void apply(Project project) {
        var dependencySet= project.getConfigurations().getByName("compile").getDependencies();
        log.info("Applying depdencies");
        project.getDependencies().add("implementation", "org.springframework.boot:spring-boot-starter-web");
        project.getDependencies().add("implementation", "org.springframework.boot:spring-boot-starter-actuator");
    }
}
plugins {
    id "test.resource-plugin" version '1.0-SNAPSHOT'
}


dependencies {
    implementation "com.test:test-starter-plugin:1.0-SNAPSHOT"

}
* Exception is:
org.gradle.api.plugins.UnknownPluginException: Plugin [id: 'test.resource-plugin', version: '1.0-SNAPSHOT'] was not found in any of the following sources:

- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Plugin Repositories (could not resolve plugin artifact 'test-starter-plugin:test-starter-plugin.gradle.plugin:1.0-SNAPSHOT')

共有1个答案

夏元明
2023-03-14

我找到了这个问题的根本原因,它已经解决了。我只需要在希望使用它的项目的settings.gradle文件中添加以下属性。

pluginManagement {
  repositories {
      mavenLocal()
      gradlePluginPortal()
  }
}
 类似资料:
  • 问题内容: 我已经构建了Gradle插件并将其发布到本地Maven存储库。我可以在〜/ .m2 /存储库中看到它。但是,当我运行Gradle项目以使用此插件时,它甚至不会在本地存储库中查找……至少,并非基于输出。 当从命令行运行时,它将报告此信息: 失败:生成失败,发生异常。 其中:构建文件“ D:\ Work \ MuseProject \ update4j-gradle-plugin \ ex

  • 我最终不得不在文件。定义通常非常繁琐: 注意上面gradle提供了一种定义常用maven存储库的好方法(即)。我想在插件或父gradle脚本中找到一种方法,在函数中或静态地定义存储库,然后在块中调用它:。 我缺乏groovy方面的知识,因此我不太了解解析groovy源代码所需的知识,我正在寻找一种很好的方法来实现这一点。我该怎么做? 我知道在父级gradle文件中,我可以使用或。我不想将这些mav

  • 我有通用的基本存储库定义如下: 我的ICustomRepostory存储库接口定义如下: 现在当我使用基本存储库时: 当我在我的服务类中自动连线 OrdeRepository 时,它给了我编译错误: 引起:org.springframework.beans.factory.BeanCreationExc的:错误创建bean的名称'OrderRepostion'定义abc.example.在@Ena

  • 这是我的构建。格雷德尔 和链接<代码>http://example.com/repository/maven-public/由Nexus Repository Manager构建,可访问。 当我在eclipse中单击刷新Gradle项目时。我可以看到链接指向 <代码>https://repo.maven.apache.org/..../example-commlib-1.0.pom 我认为正确的网

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

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