gpt4 book ai didi

gradle - 如何在本地 kotlinc 上运行远程调试

转载 作者:行者123 更新时间:2023-12-02 12:41:13 24 4
gpt4 key购买 nike

我想使用本地编译器编译一些示例 kotlin 项目。我从 githib 克隆 jetbrains/kotlin 项目并构建它。现在我在/dist 文件夹中有本地编译器。我如何需要在示例项目中配置 gradle 以在其中使用此本地编译器并具有远程调试的能力?

最佳答案

最简单的方法是构建整个工具链并在您的测试项目中使用它。
为此,请运行 install Kotlin 项目中的 Gradle 任务:

./gradlew install

这会将项目的所有 Maven 模块发布到 Maven 本地存储库(默认为 ~/.m2/repository),默认快照版本为 1.3-SNAPSHOT。在这一刻。

然后,在您的测试 Gradle 项目中:
  • 如果您使用 buildscript 应用 Gradle 插件 block 和 apply声明,添加 mavenLocal()存储库到 buildscript { repositories { ... } }并使用 Gradle 插件的快照版本:
    buildscript {
    repositories {
    mavenLocal()
    jcenter()
    }
    dependencies {
    classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3-SNAPSHOT")
    }
    }
  • 如果使用 plugins { ... } 应用插件 block ,修改settings.gradle脚本并添加以下内容:
    pluginManagement {
    repositories {
    mavenLocal()
    gradlePluginPortal()
    }
    }

    再次使用 1.3-SNAPSHOT Gradle 插件版本:
    plugins {
    id("org.jetbrains.kotlin.jvm").version("1.3-SNAPSHOT")
    }

  • 为了能够调试编译器,您需要使用等待连接的调试代理运行其进程。通常,编译器在更难连接的守护进程中运行。在 Gradle 进程中运行编译器要简单得多。为此,您需要设置系统属性 kotlin.compiler.execution.strategyin-process在 Gradle 进程中(注意:这不应该是 Gradle 项目属性,而是可以通过 -Dkey=value 传递或使用 System.setProperty(...) 设置的 Java 系统属性。

    然后使用命令行运行 Gradle 构建 -Dorg.gradle.debug=true让 Gradle 等待远程调试器。我建议从终端而不是 IDE 运行测试项目构建。

    这看起来像:
    ./gradlew compileKotlin -Dorg.gradle.debug=true -Dkotlin.compiler.execution.strategy=in-process

    Starting a Gradle Daemon, 1 busy Daemon could not be reused, use --status for details

    > Starting Daemon

    (此时,构建似乎挂起,但它只是等待调试器,所以继续下面)

    在使用 Kotlin 项目的 IDE 中,在编译器代码和 attach the remote debugger 中放置一些断点。到 Gradle 进程。

    请注意,在 Gradle 进程中运行 Kotlin 编译器时,后者可能会更快耗尽内存。确保 Gradle 进程获得足够的堆空间。

    关于gradle - 如何在本地 kotlinc 上运行远程调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58983992/

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