这是我的运行配置。
task run << {
jvmArgs "-javaagent:/home/audrius/org.springframework.instrument-3.0.5.RELEASE.jar"
jettyRun.execute()
}
但它给了我:
Could not find method jvmArgs()
如何为jettyRun设置javaagent?
最佳答案
不幸的是,Gradle 在它自己的 JVM 中运行 Jetty,因此您不能仅针对特定任务设置 javaagent。它是为整个 JVM 设置的。因此,您有两种方法来完成您想要的任务:要么在启用 javaagent 的情况下运行 Gradle 本身,要么生成另一个 JVM 进程并在其中运行 Jetty。
第一个解决方案非常简单:像平常一样提供选项。例如,输入 org.gradle.jvmargs = "-javaagent:/home/audrius/org.springframework.instrument-3.0.5.RELEASE.jar"
在你的gradle.properties
第二种方法相当困难。您不能只是生成新的 JVM 并对其说“运行此 Gradle 任务”。我想你需要使用 Gradle Tooling API通过 GradleConnector 根据您现有的构建配置生成新进程:
task run << {
ProjectConnection connection = GradleConnector.newConnector().forProjectDirectory(new File("someProjectFolder")).connect();
try {
BuildLauncher build = connection.newBuild();
build.setJvmArguments("-javaagent:/home/audrius/org.springframework.instrument-3.0.5.RELEASE.jar")
build.forTasks("jettyRun").run();
} finally {
connection.close();
}
}
如您所见,第二个解决方案非常丑陋。我最好选择第一种方法。
关于gradle - 在 Gradle 中为特定任务设置 javaagent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31027421/