尝试在我构建的自定义Gradle插件中使用外部依赖项时,我无法在任何方面导入或使用它们。
我试图在"构建脚本"one_answers"正常依赖关系"中指定我的依赖关系。我正在使用Gradle 5.5(包装脚本(,并且正在使用编写自定义Gradle插件的buildsrc方法。
// 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'
}
我在这里看到很多问题。
-
buildscript
不能控制插件实现的依赖项。 - 使用
plugins {}
DSL块应用插件。这是首选方法:https://docs.gradle.org/current/userguide/plugins.html#sec:plugins_block - 应在
compile
上使用implementation
,因为compile
在https://docs.gradle.org/current/current/userguide/java_plugin.html#tab:Configurations
话虽如此,您的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'
}
我弄清楚了我的问题是什么。对于使用buildsrc目录构建的项目,您需要将build.gradle文件保存在该目录中,而不是root项目目录(build.gradle通常寿命(。我只是将项目转换为一个普通的gradle项目,而且效果很好。