【问题标题】:Gradle: Importing plugins class from applied scriptGradle:从应用脚本导入插件类
【发布时间】:2018-03-24 13:40:41
【问题描述】:

我正在使用 gradle(多项目包装器)运行一个奇怪的行为:

我的根build.gradle 文件

plugins {
    // Docker plugin
    id "de.gesellix.docker" version "2017-10-05T23-00-11"
}

脚本助手java-docker.gradle

apply plugin: "de.gesellix.docker"

import de.gesellix.gradle.docker.tasks.DockerBuildTask
import de.gesellix.gradle.docker.tasks.DockerTask

task prepareDockerImage(type: DockerBuildTask, dependsOn: war) {
    // Task here
}

还有我的申请build.gradle:

apply from: "${gradleDirPath}/java-docker.gradle"
apply from: "${gradleDirPath}/java-webapp.gradle"

dependencies {
    // App dependencies
}

在运行./gradlew help 时遇到:

无法解析类 de.gesellix.gradle.docker.tasks.DockerTask
@ 第 6 行,第 1 列。 导入 de.gesellix.gradle.docker.tasks.DockerTask

无法解析类 de.gesellix.gradle.docker.tasks.DockerBuildTask @ 第 5 行,第 1 列。 导入 de.gesellix.gradle.docker.tasks.DockerBuildTask

我尝试从应用程序build.gradle 中删除apply from: "${gradleDirPath}/java-docker.gradle",并直接在应用程序build.gradle 中应用插件和导入,并且这是按预期工作的

知道从应用脚本导入失败的原因吗?

【问题讨论】:

  • 能否提供一个目录结构?

标签: java gradle plugins import


【解决方案1】:

问题是新的插件机制没有将插件类添加到脚本类路径中。它们仅适用于 root build.gradle 和项目 build.gradle

所以我不得不回到旧的 buildscript 机制

我的java-docker.gradle 现在看起来像:

buildscript {
  repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
   classpath "de.gesellix:gradle-docker-plugin:2017-10-05T20-48-17"
  }
}

apply plugin: de.gesellix.gradle.docker.DockerPlugin

import de.gesellix.gradle.docker.tasks.DockerBuildTask
import de.gesellix.gradle.docker.tasks.DockerTask

我还在我的根目录 build.gradle 中删除了 docker 的插件条目

编辑opal

我的目录结构如下:

.
├── buildsystem
│  ├── build.gradle
│  ├── gradle
│  │  └── java-docker.gradle
│  ├── gradle.properties
│  ├── gradlew
│  ├── gradlew.bat
│  ├── README.md
│  └── settings.gradle
└── myapp
  ├── build.gradle
  └── settings.gradle

【讨论】:

    猜你喜欢
    • 2018-10-28
    • 1970-01-01
    • 2022-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-28
    • 2012-08-31
    • 1970-01-01
    相关资源
    最近更新 更多