Essayer d'écrire un plugin dans Gradle, je ne peux pas ce que je dois mettre en œuvre Plugin

jhell:

Donc , voici mon actuel build.gradlefichier:

/*
 * 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?

Francisco Mateo:

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 initpour générer ce que vous avez maintenant. Sauf que vous avez généré un java-librarytype de construction lorsque vous devez générer le type de construction plugin Gradle.

Puisque vous avez le groovyplug - in appliqué, je suppose que vous voulez un plugin Gradle basé Groovy, donc il suffit de lancer à gradle initnouveau, mais sélectionnez le groovy-gradle-plugintype 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)
}

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=345295&siteId=1
conseillé
Classement