Gradle应用程序插件:如何使用-javaagent选项运行jvm应用程序?
我使用gradle(v1.10)中的应用程序插件来打包和运行我的应用程序 所以,现在我需要使用方面(aspectj),我不想使用aspectj编译器(ajc) 是否可以调整gradle应用程序运行脚本,使我的应用程序可以在加载时运行?类似于提供jvm选项: -javaagent:\u路径\u到\u aspectj\u weaver.jarGradle应用程序插件:如何使用-javaagent选项运行jvm应用程序?,jvm,gradle,aspectj,javaagents,Jvm,Gradle,Aspectj,Javaagents,我使用gradle(v1.10)中的应用程序插件来打包和运行我的应用程序 所以,现在我需要使用方面(aspectj),我不想使用aspectj编译器(ajc) 是否可以调整gradle应用程序运行脚本,使我的应用程序可以在加载时运行?类似于提供jvm选项: -javaagent:\u路径\u到\u aspectj\u weaver.jar 是的,就是这样做的: project(':whatever') { apply plugin: 'application' mainClas
是的,就是这样做的:
project(':whatever') {
apply plugin: 'application'
mainClassName = 'some.Main'
repositories { mavenCentral() }
dependencies {
// substitute needed version of aspectj
runtime "org.aspectj:aspectjweaver:$aspectj"
}
applicationDefaultJvmArgs = [
"-javaagent:\$APP_HOME/lib/aspectjweaver-${aspectj}.jar"
]
// $ symbol gets escaped in script anyway:( so we need to replace it.
startScripts {
doLast {
unixScript.text = unixScript.text.replace('\\$APP_HOME', '\$APP_HOME')
// do something like this for Windows scripts also
}
}
}
这适用于distTar任务,但也在运行任务中执行,这会导致\$APP_HOME无法解析并阻止运行。/gradlew run有一个gradle插件可以精确解决该问题: