【问题标题】:Spotless gradle plugin not working on closed system一尘不染的gradle插件在封闭系统上不起作用
【发布时间】:2019-10-08 15:04:21
【问题描述】:

我正在使用 gradle 5.4.1。我正在使用一尘不染的插件 gradle 3.25.0。

我的 build.gradle 包含

plugins {
  id 'java'
  id 'eclipse'
  id 'maven-publish'
  id 'com.github.johnrengelman.plugin-shadow' version '2.0.3'
  id 'org.sonarqube' version '2.7.1'
  id 'com.diffplug.gradle.spotless' version '3.25.0'
}

我的封闭系统上的关系一尘不染(它无法访问互联网)。我的 nexus 存储库中一尘不染的 gav 是 'com.diffplug.spotless:spotless-plugin-gradle:3.25.0'。

我的 settings.gradle 文件包含:

pluginManagement {
  resolutionStrategy {
    eachPlugin {
      if (requested.id.namespace == "org" && requested.id.name == "sonarqube") {
        useModule("org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:${requested.version})
      }
      if (requested.id.namespace == "com.github.johnrengelman" && requested.id.name == "plugin-shadow") {
        useModule("com.github.johnrengelman.gradle.plugins:shadow:${requested.version})
      }
      if (requested.id.namespace == "com.diffplug.gradle" && requested.id.name == "spotless") {
        useModule("com.diffplug.spotless:spotless-plugin-gradle:${requested.version})
      }
    }
  }
  repositories {
    maven {
      url "http://nexus:8081/repository/jcenter"
    }
  }
}

当我执行“./gradlew dependencies”时,出现以下错误:

An exception occurred applying plugin request [id: 'com.diffplug.gradle.spotless' version: '3.25.0', artifact: 'com.diffplug.spotless:spotless-plugin-gradle:3.25.0']
> Failed to apply plugin [id: 'com.diffplug.gradle.spotless']
 > Could not create an instance of type com.diffplug.gradle.spotless.SpotlessExtension
  > Could not generate a decorated class for class com.diffplug.gradle.spotless.SpotlessExtension
   > com/diffplug/spotless/LineEnding

堆栈跟踪似乎没有多大帮助。我尝试了旧方法(buildscript 块),但这会导致相同的错误。有人可以指出我做错了什么吗?在我可以直接访问互联网的系统上(因此不需要向 settings.gradle 文件添加任何条目)一切正常。

【问题讨论】:

  • 对我来说,它看起来像是一个缺少的类定义。是否上传了所有插件的依赖项及其原始 pom 文件?
  • 好问题。我没有上传它的pom文件。我确实上传了其他依赖项(durian* 和 diffplug*)。我一定完全错过了 pom!
  • 嗯 - 没修好 :(
  • Bjorn Vester - 这确实解决了它!如果您将此作为答案,我将接受它作为答案。

标签: java gradle spotless


【解决方案1】:

比约恩·维斯特一针见血:

对我来说,它看起来像是一个缺少的类定义。您是否上传了所有插件的依赖项及其原始 pom 文件?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-18
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    相关资源
    最近更新 更多