如果将 Gradle 插件开发为独立插件,在哪里获取项目 class?
Where to take Project class if developing Gradle plugin as standalone?
我正在尝试创建独立的 Gradle 插件,如下所述:https://docs.gradle.org/current/userguide/custom_plugins.html#N1464B
不幸的是,作者没有展示他们认为常见的东西。
特别是,他们没有说去哪里 Project
class。如果我写
import org.gradle.api.Project
class GreetingPlugin implements Plugin<Project> {
}
我明白了
Groovyc: unable to resolve class 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项目。
所以我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) 像您尝试的那样做,with some fancy hacks 在 buildSrc/build.gradle
文件中让它从根文件夹中的项目中加载
我选择了 1),因为它更容易起床 运行,并且感觉它会在 Gradle 的未来版本中起作用(因为这是他们记录的方法之一)
我正在尝试创建独立的 Gradle 插件,如下所述:https://docs.gradle.org/current/userguide/custom_plugins.html#N1464B
不幸的是,作者没有展示他们认为常见的东西。
特别是,他们没有说去哪里 Project
class。如果我写
import org.gradle.api.Project
class GreetingPlugin implements Plugin<Project> {
}
我明白了
Groovyc: unable to resolve class 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项目。
所以我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) 像您尝试的那样做,with some fancy hacks 在 buildSrc/build.gradle
文件中让它从根文件夹中的项目中加载
我选择了 1),因为它更容易起床 运行,并且感觉它会在 Gradle 的未来版本中起作用(因为这是他们记录的方法之一)