Java Gradle:从应用脚本导入插件类

Java Gradle:从应用脚本导入插件类,java,gradle,plugins,import,Java,Gradle,Plugins,Import,我对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

我对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

我已经尝试从app
build.gradle
中删除“${gradleDirPath}/java docker.gradle”中的
apply,并直接在app
build.gradle
中应用插件和导入,并且这正按照预期工作


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

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

所以我不得不回到旧的构建脚本机制

我的
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
我还在我的root
build.gradle中删除了docker的插件条目

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
}
编辑用于

我的目录结构如下所示:

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

你能提供一个目录结构吗?