gpt4 book ai didi

debugging - 使用 IntelliJ 调试 Gradle 插件

转载 作者:行者123 更新时间:2023-12-03 07:25:23 26 4
gpt4 key购买 nike

问题

我想将交互式调试器与 IntelliJ 一起使用。 不幸的是,我无法说服 IntelliJ 加载和编译该插件。但是, 我可以执行 gradle clean build 并且插件会按预期构建并运行其测试。

具体来说,我正在尝试调试对 gradle-js-plugin 的本地更改 并且 IntelliJ 表示找不到 com.google.javascript.jscomp.CompilerOptions 以及 spock.lang.Specification。 (我想也许这与它们的加载方式有关,但这是一个猜测。)


我尝试过的事情

注意:我没有在步骤之间恢复任何进程。

0。我的第一个猜测

我注意到a howtodocs.codehaus.org 。 IntelliJ 找不到 org.gradle.launcher.GradleMain,因此我对其进行了调整,以将 GradleLauncher 与以下内容一起使用:

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

GradleLauncher's documentation .

结果:IntelliJ 不会编译该项目。


1。每Peter Niederwieser's answer通过插件修复创意项目并进行调试

步骤

  1. ~# cd/path/to/gradle-js-plugin && gradle cleanIdea idea
  2. 打开新创建的项目并尝试使用第 0 步中的 ScriptRunner 进行调试。

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


2。每Peter Niederwieser's answer运行带有特殊选项的 gradle CLI

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
  • 配置 IntelliJ 以连接到此端口并开始调试(参见图片): How I configured the debugger
  • 对于这一步,我尝试了以下 .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

    2。同时使用 build.gradle 和 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()
    }

    结果:

    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

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

    希望

    任何能让我进入插件 Debug模式的提示。

    最佳答案

    我能够使用 -Dorg.gradle.debug=true 调试 gradle 源(包括插件) (找到on gradle forum):

    1. 停止守护进程(如果有):

      ./gradlew --stop

    2. 运行

      ./gradlew <task> --no-daemon -Dorg.gradle.debug=true

    3. 远程连接到 gradle 进程(端口 5005) - 如果使用 IntelliJ IDEA,请参阅上面的 OP 图片

    现在应该在断点处停止。

    <小时/>

    顺便说一句,我为 gradle 源创建了一个单独的 IntelliJ IDEA 项目。由于我使用 gradle 包装器,因此我已从以下位置获取源代码

    ~/.gradle/wrapper/dists/gradle-1.11-all/7qd8qq8te5j4f5q9aaei3gh3lj/gradle-1.11/src

    在 IDEA 中我做了 File->Import Project ,然后选择上面的路径,然后-“从现有源创建项目”。点击 Next 几次(确保我没有包含 lib/plugins 目录中的任何 jar,因为 IDEA 会提示大多数项目文件已经存在)。

    然后,我在该 IDEA 项目中创建了一个远程调试配置,并将其用于调试 gradle。

    关于debugging - 使用 IntelliJ 调试 Gradle 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11129401/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com