3

gradle (v1.10) でアプリケーション プラグインを使用して、アプリをパッケージ化して実行します。

そのため、アスペクト (aspectj) を使用する必要があり、アスペクト j コンパイラ (ajc) を使用したくありません。

gradle アプリケーションの実行スクリプトを微調整して、私のアプリを load-time-weaving で実行することは可能ですか? jvm オプションを提供するようなもの:

-javaagent:_path_to_aspectj_weaver.jar

4

1 に答える 1

3

はい、それは次のように行われます。

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
        }
    }
}
于 2014-01-07T09:49:45.290 に答える