Debug Gradle plugins com IntelliJ

Problema

Eu quero usar o depurador interativo com o IntelliJ. Infelizmente, não posso convencer o IntelliJ a carregar e compilar o plugin. Contudo, eu posso fazergradle clean build e o plug-in cria e executa seus testes conforme o esperado.

Especificamente, estou tentando depurar alterações locais paragradle-js-plugin e IntelliJ diz que não consegue encontrarcom.google.javascript.jscomp.CompilerOptions assim comospock.lang.Specification. (Eu estou pensando que talvez seja algo sobre a maneira como eles são carregados, mas isso é um palpite.)


Coisas que eu tentei

NOTA: Eu não reverti nenhum processo entre as etapas.

0. Minha primeira palpite

Percebium howto emdocs.codehaus.org. IntelliJ não conseguiu encontrarorg.gradle.launcher.GradleMain, então eu adaptei para usarGradleLauncher com o seguinte:

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"
        )
    }
}

PorDocumentação de GradleLauncher.

Resultado: O IntelliJ não compilará o projeto.

1. porPeter Niederwieser responde Corrigir projeto de ideia e depurar via pluginPassos~# cd /path/to/gradle-js-plugin && gradle cleanIdea ideaAbriu o projeto recém-criado e tentou depurar usando o ScriptRunner da etapa 0.

Resultado: Projeto compila (yay!), mas eu só posso bater pontos de interrupção emGradleScriptRunner.groovy.

2. porPeter Niederwieser responde execute gradle CLI com opções especiais

1 e 2. Fundidos para maior clareza:

~# 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
Configure o IntelliJ para se conectar a essa porta e iniciar a depuração (veja a imagem):

Para esta etapa, tentei as seguintes configurações de arquivo .gradle:

1. Use apenas 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()
}

Resultado:

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. Use build.gradle e 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()
}

Resultado:

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

Minha configuraçãoGradle
~# 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

Esperando por

Alguma dica que vai me colocar no modo de depuração dentro do plugin.

questionAnswers(3)

yourAnswerToTheQuestion