尝试在我正在构建的自定义gradle插件中使用外部依赖项时,无论如何我都无法导入或使用它们。
我试图在构建脚本和常规依赖项关闭中指定我的依赖项。我正在使用Gradle 5.5(包装器脚本),并且正在使用buildSrc方法编写自定义gradle插件。
// Necessary if loading custom plugins
apply plugin: 'java-gradle-plugin'
buildscript {
repositories {
mavenCentral()
jcenter()
}
dependencies {
classpath 'com.google.code.gson:gson:2.8.5'
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
group 'com.foo'
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
jcenter()
}
gradlePlugin {
plugins {
greeterPlugin {
id = 'com.foo.dbcreation-plugin'
implementationClass = 'com.foo.dbcreation.DbCreation'
}
}
}
dependencies {
compile 'com.google.code.gson:gson:2.8.5'
}
答案 0 :(得分:0)
我在这里看到很多问题。
buildscript
不能控制插件实现的依赖性。plugins {}
DSL块来应用插件。这是首选方式:https://docs.gradle.org/current/userguide/plugins.html#sec:plugins_block implementation
,因此应在compile
上使用compile
话虽如此,您的Gradle文件应类似于:
plugins {
id 'java-gradle-plugin'
id 'eclipse'
id 'idea'
}
group 'com.foo'
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
jcenter()
}
gradlePlugin {
plugins {
greeterPlugin {
id = 'com.foo.dbcreation-plugin'
implementationClass = 'com.foo.dbcreation.DbCreation'
}
}
}
dependencies {
implementation 'com.google.code.gson:gson:2.8.5'
}
答案 1 :(得分:0)
我弄清楚了我的问题所在。对于使用buildSrc目录构建的项目,您需要将build.gradle文件驻留在该目录中,而不是根项目目录(build.gradle通常位于其中)。我只是将项目转换为普通的gradle项目,并且效果很好。