Blockhound Gradle:“您需要添加 '-XX:+AllowRedefinitionToAddDeleteMethods' JVM 标志”

问题描述

我试图在测试期间在我的 Spring Boot 应用程序中运行 Blockhound。不幸的是,gradle 没有选择所需的 -XX:+AllowRedeFinitionToAddDeleteMethods 标志。我在运行配置以及 gradle.properties org.gradle.jvmargs=-XX:+AllowRedeFinitionToAddDeleteMethods 中使用 IntelliJ 的 VMoptions 进行了尝试。但错误仍然存​​在。

解决方法

这行得通吗?

摇篮:

tasks.withType(Test).all {
        if (JavaVersion.current().isCompatibleWith​(JavaVersion.VERSION_15)) {
            jvmArgs += [
                    "-XX:+AllowRedefinitionToAddDeleteMethods"
            ]
        }
    }

行家:

<plugins>
 ...
         <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-surefire-plugin</artifactId>
             <version>2.22.2</version>
             <configuration>
                 <argLine>-XX:+AllowRedefinitionToAddDeleteMethods</argLine>
             </configuration>
         </plugin>
 ...
 </plugins>

还是 JAVA_OPTS? 在 mac/linux 上:

export JAVA_OPTS="-XX:+AllowRedefinitionToAddDeleteMethods"

或 Windows

set JAVA_OPTS="-XX:+AllowRedefinitionToAddDeleteMethods"

参考:https://github.com/reactor/BlockHound/issues/33