【问题标题】:How do I run the GraalVM native image tracing agent from a Spring Native Gradle project?如何从 Spring Native Gradle 项目运行 GraalVM 原生图像跟踪代理?
【发布时间】:2021-04-12 17:44:34
【问题描述】:

我找到了有关如何从 Spring Native Maven 项目运行 GraalVM 本机图像跟踪代理的信息,但我找不到有关如何从 Gradle 项目执行此操作的信息。

https://docs.spring.io/spring-native/docs/current/reference/htmlsingle/#_using_it_with_maven

关于如何从 Gradle 项目中实现它的任何想法?

【问题讨论】:

    标签: gradle graalvm spring-native


    【解决方案1】:

    辅助配置 javaagent 与构建工具正交,因此需要为运行测试的 jvm 指定正确的参数:

    您参考的文档概述了这样的内容:-agentlib:native-image-agent=access-filter-file=access-filter.json,config-output-dir=target/classes/META-INF/native-image

    我认为在 Gradle 中您只需使用它配置 test 任务:

    test { 
      jvmArgs -agentlib:native-image-agent=access-filter-file=access-filter.json,config-output-dir=target/classes/META-INF/native-image
    }
    

    这里是关于测试任务的 Gradle 文档:https://docs.gradle.org/current/dsl/org.gradle.api.tasks.testing.Test.html

    【讨论】:

    • 感谢您的信息。我试过: test { useJUnitPlatform() jvmArgs '-agentlib:native-image-agent=access-filter-file=src/test/resources/access-filter.json,config-output-dir=ml' } 我希望在文件夹“ml”中得到一些输出,但运行后它是空的:./gradlew clean bootBuildImage
    • 我认为它为测试运行添加了 jvmArgs。 ./gradlew test之后还是空的吗?
    • 是的!鉴于 GraalVM 已安装并添加到 $PATH :-) 运行 ./gradlew test 对我有用,我猜。然后,我可以在检查后将文件移动到 src/resources/META-INF/native-image 并运行单独的 ./gradlew bootBuildImage 命令。我试试看!
    • 只是为了确认这完全正常。我本机编译的 Spring Boot 应用程序现在可以完美运行。看到它们在 150 毫秒内启动真是太棒了 :-)
    猜你喜欢
    • 1970-01-01
    • 2020-09-09
    • 2021-02-03
    • 2022-12-14
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多