这是我的运行配置.
task run << {
jvmArgs "-javaagent:/home/audrius/org.springframework.instrument-3.0.5.RELEASE.jar"
jettyRun.execute()
}
Run Code Online (Sandbox Code Playgroud)
但它给了我:
Could not find method jvmArgs()
Run Code Online (Sandbox Code Playgroud)
你如何为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();
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,第二个解决方案非常难看。我最好选择第一种方法。
| 归档时间: |
|
| 查看次数: |
3676 次 |
| 最近记录: |