我正在使用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列.import de.gesellix.gradle.docker.tasks.DockerTask
和
无法解析类de.gesellix.gradle.docker.tasks.DockerBuildTask @第5行,第1列.import de.gesellix.gradle.docker.tasks.DockerBuildTask
我试图从app build.gradle
删除 apply from: "${gradleDirPath}/java-docker.gradle"
并直接在app build.gradle
和 this is working 直接应用插件和导入 .
知道为什么从应用脚本导入失败?
1 回答
问题是新的插件机制没有将 plugin classes 添加到脚本类路径 . 它们只适用于root
build.gradle
和项目build.gradle
.所以我不得不回到旧的buildscript机制
我的
java-docker.gradle
现在看起来像:我还在我的root中删除了docker的插件条目
build.gradle
Edit for opal
我的目录结构如下: