Debug Gradle plugins com IntelliJ
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.)
NOTA: Eu não reverti nenhum processo entre as etapas.
0. Minha primeira palpitePercebium 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 idea
Abriu 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
.
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)
IntelliJIntelliJ IDEA Ultimate 117.499 w/ Bundled Gradle plugin
Esperando porAlguma dica que vai me colocar no modo de depuração dentro do plugin.