Debuggen Sie Gradle-Plugins mit IntelliJ

Problem

Ich möchte den interaktiven Debugger mit IntelliJ verwenden. Leider kann ich IntelliJ nicht überzeugen, das Plugin zu laden und zu kompilieren. Jedoch, ich kanngradle clean build und das Plugin erstellt und führt seine Tests wie erwartet aus.

Insbesondere versuche ich, lokale Änderungen an zu debuggengradle-js-plugin und IntelliJ sagt, es kann nicht findencom.google.javascript.jscomp.CompilerOptions ebenso gut wiespock.lang.Specification. (Ich denke, es ist vielleicht etwas über die Art und Weise, wie sie geladen werden, aber das ist eine Vermutung.)


Dinge, die ich versucht habe

HINWEIS: Ich habe keine Prozesse zwischen den Schritten zurückgesetzt.

0. Meine erste Vermutung

mir ist aufgefallenein howto aufdocs.codehaus.org. IntelliJ konnte nicht findenorg.gradle.launcher.GradleMain, also habe ich es angepasst, um zu verwendenGradleLauncher mit den folgenden:

import org.gradle.GradleLauncher

class GradleScriptRunner {
    public static void main(String[] args) {
        GradleLauncher.newInstance(
            "-p", 
            "/path/to/gradle-js-plugin/src/test/resources/build.gradle", 
            "clean assemble"
        )
    }
}

ProGradleLauncher Dokumentation.

Ergebnis: IntelliJ kompiliert das Projekt nicht.

1. PerAntwort von Peter Niederwieser Repariere das Ideenprojekt und debugge es über das PluginSchritte~# cd /path/to/gradle-js-plugin && gradle cleanIdea ideaÖffnete das neu erstellte Projekt und versuchte ab Schritt 0 mit dem ScriptRunner zu debuggen.

Ergebnis: Projekt kompiliert (Yay!), aber ich kann nur Haltepunkte in treffenGradleScriptRunner.groovy.

2. PerAntwort von Peter Niederwieser Führen Sie gradle CLI mit speziellen Optionen aus

1 & 2. Der Übersichtlichkeit halber zusammengeführt:

~# export GRADLE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
~# gradle clean assemble
Listening for transport dt_socket at address: 5005
Konfigurieren Sie IntelliJ für die Verbindung mit diesem Port und starten Sie das Debugging (siehe Abbildung):

Für diesen Schritt habe ich die folgenden .gradle-Dateikonfigurationen ausprobiert:

1. Verwenden Sie nur build.gradle

--build.gradle--

apply plugin: 'groovy'
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'maven'
apply plugin: 'js'

buildscript {
    repositories {
        mavenLocal()
        mavenCentral()
    }

    dependencies {
        compile findProject "/path/to/gradle-js-plugin"
    }
}

repositories {
    mavenLocal()
    mavenCentral()
}

Ergebnis:

FAILURE: Build failed with an exception.

* Where:
Build file '/path/to/gradle-js-plugin/src/test/resources/build.gradle' line: 13

* What went wrong:
A problem occurred evaluating root project 'resources'.
> No such property: findProject for class: org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 8 mins 50.498 secs

2. Verwenden Sie sowohl build.gradle als auch settings.gradle

--settings.gradle--

include "/path/to/gradle-js-plugin"

--build.gradle--

apply plugin: 'groovy'
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'maven'
apply plugin: 'js'

buildscript {
    repositories {
        mavenLocal()
        mavenCentral()
    }
}

repositories {
    mavenLocal()
    mavenCentral()
}

Ergebnis:

FAILURE: Build failed with an exception.

* Where:
Build file '/path/to/gradle-js-plugin/src/test/resources/build.gradle' line: 5

* What went wrong:
A problem occurred evaluating root project 'resources'.
> Plugin with id 'js' not found.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 13.553 secs

Mein SetupGradle
~# gradle -v
------------------------------------------------------------
Gradle 1.0
------------------------------------------------------------

Gradle build time: Tuesday, June 12, 2012 12:56:21 AM UTC
Groovy: 1.8.6
Ant: Apache Ant(TM) version 1.8.2 compiled on December 20 2010
Ivy: 2.2.0
JVM: 1.7.0_04 (Oracle Corporation 23.0-b21)
OS: Linux 3.2.0-2-amd64 amd64
Java
~# java -version
java version "1.7.0_04"
Java(TM) SE Runtime Environment (build 1.7.0_04-b20)
Java HotSpot(TM) 64-Bit Server VM (build 23.0-b21, mixed mode)
IntelliJ
IntelliJ IDEA Ultimate 117.499 w/ Bundled Gradle plugin

Hoffen auf

Alle Tipps, die mich im Plugin in den Debug-Modus versetzen.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage