mirror of
https://github.com/spring-projects/spring-framework.git
synced 2026-05-02 20:09:31 +01:00
6861d35ea0
Prior to this commit, the [ant:iajc] tasks logged numerous warnings
regarding incorrect classpath entries. The reason is that the classpath
was constructed with paths that do not physically exist in the file
system (e.g., for projects that do not have test classes or test
folders (yet)).
This commit picks up where ef75bd8 left off and addresses this issue by
assembling the runtime classpath passed to the iajc task with folders
and JARs that actually exist in the filesystem.
84 lines
2.8 KiB
Groovy
84 lines
2.8 KiB
Groovy
// redefine the compileJava and compileTestJava tasks in order to
|
|
// compile sources with ajc instead of javac
|
|
|
|
configurations {
|
|
rt
|
|
ajc
|
|
aspects
|
|
ajInpath
|
|
}
|
|
|
|
// exclude spring-aspects as a module within IDEA until IDEA-64446 is resolved
|
|
tasks.getByName("idea").onlyIf { false }
|
|
tasks.getByName("ideaModule").onlyIf { false }
|
|
|
|
compileJava {
|
|
actions = []
|
|
dependsOn configurations.ajc.getTaskDependencyFromProjectDependency(true, "compileJava")
|
|
|
|
def outputDir = project.sourceSets.main.output.classesDir
|
|
|
|
inputs.files(project.sourceSets.main.allSource + project.sourceSets.main.compileClasspath)
|
|
outputs.dir outputDir
|
|
|
|
ext.sourceCompatibility = project(":spring-core").compileJava.sourceCompatibility
|
|
ext.targetCompatibility = project(":spring-core").compileJava.targetCompatibility
|
|
|
|
doLast{
|
|
// Assemble runtime classpath from folders and JARs that actually exist
|
|
def runtimeClasspath = project.files(sourceSets.main.runtimeClasspath.files.findAll({ it.exists() }))
|
|
|
|
ant.taskdef(resource: "org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties",
|
|
classpath: configurations.ajc.asPath)
|
|
|
|
ant.iajc(source: sourceCompatibility, target: targetCompatibility,
|
|
maxmem: "1024m", fork: "true", Xlint: "ignore",
|
|
destDir: outputDir.absolutePath,
|
|
aspectPath: configurations.aspects.asPath,
|
|
inpath: configurations.ajInpath.asPath,
|
|
sourceRootCopyFilter: "**/*.java,**/*.aj",
|
|
classpath: (runtimeClasspath + configurations.rt).asPath) {
|
|
sourceroots {
|
|
sourceSets.main.java.srcDirs.each {
|
|
pathelement(location:it.absolutePath)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
compileTestJava {
|
|
actions = []
|
|
dependsOn configurations.ajc.getTaskDependencyFromProjectDependency(true, "compileTestJava")
|
|
dependsOn jar
|
|
|
|
def outputDir = project.sourceSets.test.output.classesDir
|
|
|
|
inputs.files(project.sourceSets.test.allSource + project.sourceSets.test.compileClasspath)
|
|
outputs.dir outputDir
|
|
|
|
ext.sourceCompatibility = project(":spring-core").compileTestJava.sourceCompatibility
|
|
ext.targetCompatibility = project(":spring-core").compileTestJava.targetCompatibility
|
|
|
|
doLast{
|
|
// Assemble runtime classpath from folders and JARs that actually exist
|
|
def runtimeClasspath = project.files(sourceSets.test.runtimeClasspath.files.findAll({ it.exists() }))
|
|
|
|
ant.taskdef(resource: "org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties",
|
|
classpath: configurations.ajc.asPath)
|
|
|
|
ant.iajc(source: sourceCompatibility, target: targetCompatibility,
|
|
maxmem: "1024m", fork: "true", Xlint: "ignore",
|
|
destDir: outputDir.absolutePath,
|
|
aspectPath: jar.archivePath,
|
|
inpath: configurations.ajInpath.asPath,
|
|
classpath: (runtimeClasspath + project.files(jar.archivePath) + configurations.rt).asPath) {
|
|
sourceroots {
|
|
sourceSets.test.java.srcDirs.each {
|
|
pathelement(location:it.absolutePath)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|