我正在尝试按照此处所述创建独立的Gradle插件:https://docs.gradle.org/current/userguide/custom_plugins.html#N1464B
不幸的是,作者没有表现出他们看起来很普遍的东西。
特别是,他们不知道在哪里上Project
课。如果我写
import org.gradle.api.Project
class GreetingPlugin implements Plugin<Project> {
}
我得到了
Groovyc:无法解析类org.gradle.api.Project
如何解决?
更新
构建文件:
group MYGROUP
version MYVERSION
apply plugin: 'java'
apply plugin: 'groovy'
sourceCompatibility = 1.7
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
compile gradleApi()
compile localGroovy()
}
该项目是上层项目的一个模块。
更新
我有以下结构:
parentproject/
src/main/java/
..java files..
build.gradle
settings.gradle
thisproject/
src/main/groovy/..package../GreetingSupport.groovy
build.gradle
我想在thisproject
中开发Gradle插件,然后在parentproject
中使用它,这是正常的Java项目。
答案 0 :(得分:2)
所以我tried to find out how to do this a few weeks ago,发现编写插件有3个选项:
1)将您的插件放在buildSrc
内,即:
project
|-buildSrc
| |-src
| | \-main
| | \-java
| | - your.package.YourPlugin.java
| \-build.gradle
|-src
| \-main
| \-java
| - another.package.SomeCode.java
\-build.gradle
2)使用插件编写一个单独的项目,在本地发布,然后像普通项目一样将其拉入项目
3)就像你在buildSrc/build.gradle
文件中尝试with some fancy hacks一样,让它加载出根文件夹中的项目
我选择了1)因为它更容易启动和运行,并且觉得它可以在未来的Gradle版本中运行(因为它是他们记录的方式之一)