无法在插件{}块中使用'jsonschema2pojo'gradle插件?

时间:2018-08-09 11:57:53

标签: java json gradle

任何人都可以解释从何处获得该插件的id以及为什么我不能在plugins{}中使用它?

我想开始使用它

plugins {
    id "jsonschema2pojo" version "0.5.1"
}

但是,相反,我被迫使用通过buildscript

应用插件的旧方法

我不能同时使用两者,因为它们彼此排斥。

这是我在GitHub上问的问题 https://github.com/joelittlejohn/jsonschema2pojo/issues/896#issuecomment-411491416

是否不可能有人知道一个更好/不同的gradle插件来实现这一目标?

2 个答案:

答案 0 :(得分:1)

我从this file看到ID是jsonschema2pojo

但是searching the gradle plugin portal对该插件返回的结果为零,因此您需要找到它的托管位置。参见custom plugin repositories

例如settings.gradle

pluginManagement {
  repositories {
      maven {
        url 'maven-repo'
      }
      gradlePluginPortal()
      ivy {
        url 'ivy-repo'
      }
  }
}

答案 1 :(得分:0)

一段时间后,我设法使其适用于

build.gradle

plugins {
    id "org.jsonschema2pojo.gradle" version "1.0.0-alpha2"
}

由于jsonschema2pojo返回了一个空id.namespace,而这个org.jsonschema2pojo.gradle返回了org.jsonschema2pojo id.namespace,那么我们可以使用重排策略。

settings.gradle

pluginManagement {
    repositories {
        maven { url ".../nexus/content/groups/GradlePlugins/" }
        maven { url ".../nexus/content/groups/public/" }
    }
    resolutionStrategy {
        eachPlugin {
            if (requested.id.namespace == 'org.jsonschema2pojo') {
                useModule("org.jsonschema2pojo:jsonschema2pojo-gradle-plugin:$requested.version")
            }
        }
    }
}

我希望这可以帮助某人,尽管它不是最干净的,但它可以工作。