Donc , voici mon actuel build.gradle
fichier:
/*
* This file was generated by the Gradle 'init' task.
*
* This generated file contains a sample Java Library project to get you started.
* For more details take a look at the Java Libraries chapter in the Gradle
* User Manual available at https://docs.gradle.org/5.6.1/userguide/java_library_plugin.html
*/
apply plugin: 'groovy'
apply plugin: 'java-gradle-plugin'
repositories {
google()
}
dependencies {
compile gradleApi()
}
De tout ce que je l'ai lu dans la documentation gradle, je crois que cela est tout ce que je devrais avoir besoin de créer réellement un plugin. Je veux dire être en mesure d'importer du plug-in package org.gradle.
Cependant, org.gradle ne peut être trouvé sur mon chemin de construction.
Que dois-je faire?
A en juger par les commentaires dans la construction Gradle vous avez fourni, je suppose que vous avez installé Gradle sur votre machine locale et que vous avez utilisé gradle init
pour générer ce que vous avez maintenant. Sauf que vous avez généré un java-library
type de construction lorsque vous devez générer le type de construction plugin Gradle.
Puisque vous avez le groovy
plug - in appliqué, je suppose que vous voulez un plugin Gradle basé Groovy, donc il suffit de lancer à gradle init
nouveau, mais sélectionnez le groovy-gradle-plugin
type plug - in . Par exemple, en utilisant Gradle 6.2.2 sur ma machine locale, ma borne de sortie pour générer un projet de plugin Gradle en utilisant des spectacles Groovy:
➜ gradle init
Select type of project to generate:
1: basic
2: application
3: library
4: Gradle plugin
Enter selection (default: basic) [1..4] 4
Select implementation language:
1: Groovy
2: Java
3: Kotlin
Enter selection (default: Java) [1..3] 1
Select build script DSL:
1: Groovy
2: Kotlin
Enter selection (default: Groovy) [1..2] 1
Project name (default: example-groovy):
Source package (default: example.groovy):
> Task :init
Get more help with your project: https://guides.gradle.org?q=Plugin%20Development
BUILD SUCCESSFUL in 17s
2 actionable tasks: 2 executed
Alors maintenant, j'ai la structure des répertoires et fichiers suivants:
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
├── functionalTest
│ └── groovy
│ └── example
│ └── groovy
│ └── ExampleGroovyPluginFunctionalTest.groovy
├── main
│ ├── groovy
│ │ └── example
│ │ └── groovy
│ │ └── ExampleGroovyPlugin.groovy
│ └── resources
└── test
├── groovy
│ └── example
│ └── groovy
│ └── ExampleGroovyPluginTest.groovy
└── resources
Et le contenu du fichier de construction Gradle générés:
/*
* This file was generated by the Gradle 'init' task.
*
* This generated file contains a sample Gradle plugin project to get you started.
* For more details take a look at the Writing Custom Plugins chapter in the Gradle
* User Manual available at https://docs.gradle.org/6.2.2/userguide/custom_plugins.html
*/
plugins {
// Apply the Java Gradle plugin development plugin to add support for developing Gradle plugins
id 'java-gradle-plugin'
// Apply the Groovy plugin to add support for Groovy
id 'groovy'
}
repositories {
// Use jcenter for resolving dependencies.
// You can declare any Maven/Ivy/file repository here.
jcenter()
}
dependencies {
// Use the awesome Spock testing and specification framework
testImplementation 'org.spockframework:spock-core:1.3-groovy-2.5'
}
gradlePlugin {
// Define the plugin
plugins {
greeting {
id = 'example.groovy.greeting'
implementationClass = 'example.groovy.ExampleGroovyPlugin'
}
}
}
// Add a source set for the functional test suite
sourceSets {
functionalTest {
}
}
gradlePlugin.testSourceSets(sourceSets.functionalTest)
configurations.functionalTestImplementation.extendsFrom(configurations.testImplementation)
// Add a task to run the functional tests
task functionalTest(type: Test) {
testClassesDirs = sourceSets.functionalTest.output.classesDirs
classpath = sourceSets.functionalTest.runtimeClasspath
}
check {
// Run the functional tests as part of `check`
dependsOn(tasks.functionalTest)
}