我看了一些棘手的例子here。
我已经创建了这个项目:
frontoffice
├── gradle.properties
├── build.gradle
└── gradle
└── thorntail.gradle
thorntail.gradle
是:
buildscript {
String thorntailVersion = System.getProperty('thorntailVersion') ?: VERSION_THORNTAIL
repositories {
mavenLocal()
mavenCentral()
maven {
url "https://oss.sonatype.org/content/repositories/snapshots/"
}
}
dependencies {
classpath "io.thorntail:thorntail-gradle-plugin:$thorntailVersion"
}
}
和build.gradle
:
apply from: "$projectDir/gradle/thorntail.gradle"
apply plugin: 'thorntail'
我得到:
➜ prjt git:(master) ✗ gradle clean compile
FAILURE: Build failed with an exception.
* Where:
Build file '/home/jeusdi/projects/espaidoc/frontoffice/build.gradle' line: 10
* What went wrong:
A problem occurred evaluating project ':frontoffice'.
**> Plugin with id 'thorntail' not found.**
有什么想法吗?
答案 0 :(得分:1)
AFAIK插件ID不能在外部脚本中使用。这是一个已知的限制。相反,您应该使用完全合格的插件类。例如,在thorntail.gradle
中:
buildscript {
String thorntailVersion = System.getProperty('thorntailVersion') ?: '2.5.1.Final-SNAPSHOT'
repositories {
mavenLocal()
mavenCentral()
maven {
url "https://oss.sonatype.org/content/repositories/snapshots/"
}
}
dependencies {
classpath "io.thorntail:thorntail-gradle-plugin:$thorntailVersion"
}
}
apply plugin: 'org.wildfly.swarm.plugin.gradle.PackagePlugin'
在build.gradle
中:
apply from: "$projectDir/gradle/thorntail.gradle"
我知道它看起来不像您所做的那样,因为apply
在外部脚本中。另一个选择(最接近您要实现的目标)是在build.gradle
中放置以下内容:
buildscript {
apply from: "$projectDir/gradle/thorntail.gradle",
to: buildscript
}
apply plugin: 'thorntail'
然后在thorntail.gradle
中删除buildscript
块并保留内部块,即:
String thorntailVersion = System.getProperty('thorntailVersion') ?: '2.5.1.Final-SNAPSHOT'
repositories {
mavenLocal()
mavenCentral()
maven {
url "https://oss.sonatype.org/content/repositories/snapshots/"
}
}
dependencies {
classpath "io.thorntail:thorntail-gradle-plugin:$thorntailVersion"
}