Gradle Application Plugin:如何使用-javaagent选项运行jvm应用程序?

时间:2014-01-07 09:49:45

标签: jvm gradle aspectj javaagents

我在gradle(v1.10)中使用应用程序插件来打包并运行我的应用程序。

所以,现在我需要使用方面(aspectj),我不想使用aspectj-compiler(ajc)。

是否可以调整gradle应用程序运行脚本,因此我的应用程序可以使用加载时编织运行?像提供jvm选项的东西:

  

-javaagent:_path_to_aspectj_weaver.jar

1 个答案:

答案 0 :(得分:2)

是的,就是这样做的:

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
        }
    }
}