gradle - 无法解析 Gradle 脚本插件中的插件(外部 Gradle 文件)

标签 gradle artifactory gradle-plugin

我正在尝试将 build.gradle 中的一些 JFrog 发布代码干燥到外部文件(Gradle 脚本插件)(我在不同的 Gradle 项目中复制了该代码)。

https://github.com/wizpanda/gradle-common/blob/06a497b62fb4bb86facd96375bad1d91a67545d1/grails-plugin-jfrog-publish.gradle

buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.21.0"
    }
}

apply plugin: 'maven-publish'
apply plugin: 'com.jfrog.artifactory'

publishing {
    publications {
        wpJFrogMaven(MavenPublication) {

            // Code removed for brevity 

        }
    }
}

// Code removed for brevity

我在实际项目的主 build.gradle 末尾使用这个 Gradle 脚本插件 -

apply from: "https://raw.githubusercontent.com/wizpanda/gradle-common/main/grails-plugin-jfrog-publish.gradle"

当我运行任何 Gradle 任务时,例如 - ./gradlew artifactoryPublish,它会失败并出现错误 -

FAILURE: Build failed with an exception.

* Where:
Script 'https://raw.githubusercontent.com/wizpanda/gradle-common/06a497b62fb4bb86facd96375bad1d91a67545d1/grails-plugin-jfrog-publish.gradle' line: 14

* What went wrong:
A problem occurred evaluating script.
> Plugin with id 'com.jfrog.artifactory' not found.

但是如果我在项目的主 build.gradle 文件中定义相同的 buildscript 配置和插件,它就可以正常工作。

我已经花了 3-4 个小时调试它并阅读了各种文章、博客和文档 -

我错过了什么愚蠢的事情吗?

最佳答案

不幸的是,如果您通过 ID 引用第三方插件,则无法在外部 Gradle 脚本插件中传递应用该插件。

您必须通过实现类来引用插件。

有一个open ticket regarding this issue .

您可以在 following PR 中看到必要的更改.

apply plugin: 'com.jfrog.artifactory'

进入

apply plugin: org.jfrog.gradle.plugin.artifactory.ArtifactoryPlugin

关于gradle - 无法解析 Gradle 脚本插件中的插件(外部 Gradle 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67548527/

相关文章:

java - 一种从 Artifact 中删除 jar 的方法

node.js - 无法解决org.nodejs:本地生成错误

android - 用 “no signature of method … is applicable for argument types: (java.lang.String) values”构建gradle失败

open-source - Artifactory OSS 源代码在哪里?

go - 如何使用 gocenter remote Artifactory repo 进行本地依赖解析?

eclipse - 如何使用Gradle Kotlin DSL创建Eclipse项目?

android - Android Studio 23.0.0 rc3错误|尝试了所有解决方案不起作用

java - OSGi:BND 工具无法仅 @Reference 特定组件

maven - 自定义Gradle插件找不到它自己的Maven依赖项

gradle - 如何修改gradle任务openapi3的dependsOn。 gradle插件是用kotlin编写的