当前位置: 首页 > 知识库问答 >
问题:

用IntelliJ调试Gradle插件

胡璞瑜
2023-03-14

我想使用IntelliJ的交互式调试器。 <罢工> 不幸的是,我无法说服IntelliJ加载和编译插件。然而, 我可以执行gradle clean build并且插件按照预期构建并运行其测试

具体地说,我正在尝试调试对gradle-js-plugin的本地更改 <罢工> IntelliJ说它找不到 com.google.javascript.jscomp.CompilerOptions以及 spock.lang.specification。(我在想也许是因为它们的装填方式,但那只是猜测。)


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"
        )
    }
}
  1. ~#cd/path/to/gradle-js-plugin&&gradle cleanIdea idea
  2. 打开了新创建的项目,并尝试使用步骤0中的ScriptRunner进行调试。

结果:项目编译(耶!),但我只能在gradlescriptrunner.groovy中找到断点。

1和2。为清晰起见合并:

~# 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

对于这一步,我尝试了以下.gradle文件配置:

1.仅使用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()
}
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
include "/path/to/gradle-js-plugin"
apply plugin: 'groovy'
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'maven'
apply plugin: 'js'

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

repositories {
    mavenLocal()
    mavenCentral()
}
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
~# 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 -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 IDEA Ultimate 117.499 w/ Bundled Gradle plugin

任何可以让我进入插件调试模式的提示。

共有1个答案

尹乐邦
2023-03-14

首先,听起来你的IDEA Gradle项目有问题。如果您运行gradlew cleanIdea IDEA,然后从IDEA打开生成的项目(而不是使用JetGradle插件),那么一切都应该很好。

其次,如果您仍然无法使GradleMain/GradleLauncher(前一个类确实存在)方法工作,另一种方法是将Gradle构建作为外部应用程序进行调试。为此,您需要将-xdebug-xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005添加到gradle_opts环境变量中,从命令行运行构建,等待它挂起,然后从idea启动“远程”运行配置(具有相应的设置)。此时,调试器应该连接到Gradle进程,并且您应该启动并运行。

 类似资料:
  • 我有一个用IntelliJ Idea开发的JavaEE webapp项目(名为ProjectA),它有一个应用war插件的build.gradle文件: 我想调试(或运行)gradle生成的war文件,而不是调试自动生成的intellij工件。这对我来说非常重要,我可以更新在调试过程中更改的类,而不需要重新启动服务器。 我该怎么做呢? 2)此外,还有一些分级任务(clean,build,war等)

  • 在IJ中的resule是这样的,永远不要停在断点处 怎样做才能使断点有用

  • 问题内容: 我正在使用使用构建工具的框架来开发项目。 我的问题是,断点根本无法 以我尝试的任何方式工作。 这是我在中使用的运行配置: 因此,部署是使用来完成的Gradle,运行没有任何问题,IntelliJ 调试器已连接,但是断点不起作用。 我尝试使其工作的方法: 1)Gradle运行配置。这是运行配置Intellij IDEA: 使用Gradle的Intellij运行配置 尝试使用远程调试工具启

  • 目前,我为插件构建的结构有点混乱:我使用普通的IDEA项目文件在本地构建插件。当我将它推送到repo时,travis-ci正在构建它,它使用maven,因为travis要工作,它总是必须下载完整的想法源。 虽然这样做有效,但这有几个缺点: 我需要保持两个已构建的机制是最新的。这是 当新的IDEA版本发布时(每隔几周发布一次),我需要在maven和我的IDEA设置中更改SDK 添加新库、更改资源等时

  • 我正在尝试使用IntelliJ中新的android gradle插件,但我似乎无法使用新的gradle插件构建我的项目。 [更新]经过一些更多的研究,我发现从另一个SO问题,IntelliJ没有跟上android gradle插件。AS和IntelliJ之间有一些延迟。更多信息可以在这里找到:IntelliJ idea中包含的Android插件版本是什么?在@Scott Barta的回应上。 看起

  • 问题内容: 我正在尝试使用Intellij(IDEA)调试grunt。这些技术是:NodeJS,express,AngularJS。 问题:调试器不会在断点处停止。 我很高兴听到您的想法。 配置选项卡: 节点解释器:C:\ Program Files \ nodejs \ node.exe Javscript文件:C:\ Users [用户] \ AppData \ Roaming \ npm \