使用自定义 Maven 存储库中的 Gradle 插件

Psy*_*nch 1 java gradle maven

我正在使用私有 Maven 存储库的有限开发环境中工作。其中托管了我正在尝试使用的 Gradle 插件。但是,我不认为它遵循 Gradle 插件的预期命名和目录结构,因此当我使用 Plugin DSL 时,我的构建失败。在 Maven 存储库中,插件的结构如下:

com.mydomain.project:mydomain-plugin:1.0.0
Run Code Online (Sandbox Code Playgroud)

当我使用 Gradle 插件 DSL 引用此插件时,使用以下定义:

plugins {
    id 'com.mydomain.project' version '1.0.0'
}
Run Code Online (Sandbox Code Playgroud)

我的构建出现错误,抱怨找不到com.mydomain.project:com.mydomain.poject.gradle.plugin:1.0.0. 然而,似乎没有办法通过插件 DSL 来指示该插件使用不同的工件 id 模式。有什么想法如何解决这个问题吗?

Fra*_*teo 5

您可以用来pluginManagement { }为 Gradle 插件指定其他存储库。

pluginManagement {
    repositories {
        maven {
            url 'https://my-company-maven-repo.com/'
        }
        gradlePluginPortal()
    }
}
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅自定义插件存储库

这是第一步,其次您需要确保发布两个工件才能使用plugins { }DSL:

  1. 插件标记神器
  2. Gradle 插件 JAR 本身

这两个工件都是由Java Gradle Plugin Development 插件为您创建的。如果您不使用该插件,那么您将需要自己创建插件标记工件。