4

@Configurable Spring アノテーションに依存するプロジェクトの Maven ビルドを Gradle に移行していますが、私の (Web) アプリケーションが実行されている場合、@Configurable クラスはどれも Gradle ビルドの下に挿入されません (Maven をビルドして正常に動作していました)。

Maven では、次のプラグインを使用しました。

    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>aspectj-maven-plugin</artifactId>
        <version>1.4</version>

        <executions>
            <execution>
                <goals>
                    <goal>compile</goal>
                    <goal>test-compile</goal>
                </goals>
            </execution>
        </executions>

        <configuration>
            <aspectLibraries>
                <aspectLibrary>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-aspects</artifactId>
                </aspectLibrary>
            </aspectLibraries>
            <source>${java.version}</source>
            <target>${java.version}</target>
        </configuration>
    </plugin>

Gradle 1.0 の場合、0.9 ajc プラグイン (以下の URL) を適用しましたが、configuration/aspectLibraries/spring-aspects をこれに追加する方法がわかりませんでした:

    apply plugin: 'war'
apply plugin: 'jetty'

sourceCompatibility = 1.6
version = 1.0
// Based on: http://github.com/breskeby/gradleplugins/raw/0.9-upgrade/aspectjPlugin/aspectJ.gradle    
configurations {
    ajc
    aspects
    ajInpath
}

task compileJava(dependsOn: JavaPlugin.PROCESS_RESOURCES_TASK_NAME, overwrite: true)  {
    dependsOn configurations.ajc.getTaskDependencyFromProjectDependency(true, "compileJava")

    doLast{
        ant.taskdef( resource:"org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties", classpath: configurations.ajc.asPath)
        ant.iajc(source:sourceCompatibility, target:targetCompatibility, destDir:sourceSets.main.output.classesDir.absolutePath, maxmem:"512m", fork:"true",
                aspectPath:configurations.aspects.asPath, inpath:configurations.ajInpath.asPath, sourceRootCopyFilter:"**/.svn/*,**/*.java",classpath:configurations.compile.asPath){
            sourceroots{
                sourceSets.main.java.srcDirs.each{
                    pathelement(location:it.absolutePath)
                }
            }
        }
    }
}

dependencies {
    ajc     group: 'org.aspectj',                     name: 'aspectjtools',                   version: '1.6.12'
    compile group: 'org.aspectj',                     name: 'aspectjrt',                      version: '1.6.12'
    compile group: 'org.aspectj',                     name: 'aspectjweaver',                  version: '1.6.12'

    compile group: 'org.springframework',             name: 'spring-jdbc',                    version: '3.1.1.RELEASE'
    compile group: 'org.springframework',             name: 'spring-orm',                     version: '3.1.1.RELEASE'
    compile group: 'org.springframework',             name: 'spring-aop',                     version: '3.1.1.RELEASE'
    compile group: 'org.springframework',             name: 'spring-aspects',                 version: '3.1.1.RELEASE'
    compile group: 'org.springframework',             name: 'spring-web',                     version: '3.1.1.RELEASE'
    compile group: 'org.springframework',             name: 'spring-webmvc',                  version: '3.1.1.RELEASE'
    compile group: 'org.springframework',             name: 'spring-expression',              version: '3.1.1.RELEASE'
}

Gradle で構築された Web アプリケーションでスプリング アスペクトを機能させるには、どうすればよいですか?

ありがとう

4

1 に答える 1