我正在使用Groovy的AntBuilder来构建一个Java项目。 如果缺少看起来确实应该包含的类,则发生错误。 我想打印出以下类路径闭包中包含的每个 JAR/WAR,但我不知道该怎么做。 每次我尝试显示类路径的内容时,它都显示为 null。 关于如何做到这一点的任何想法?
作为参考,这里是 java 构建任务和类路径。 这发生在new AntBuilder().with { }
闭包中。
javac srcdir: sourceDir, destdir: destDir, debug: true, target: 1.6, fork: true, executable: getCompiler(), {
classpath {
libDirs.each { dir -> fileset dir: dir, includes: "*.jar,*.war" }
websphereLib.each { dir -> fileset dir: dir, includes: "*.jar*" }
if (springLib.exists()) { fileset dir: springLib, includes: "*.jar*" }
was_plugins_compile.each { pathelement location: was_plugins_dir + it }
if (webinf.exists()) { fileset dir: webinf, includes: "*.jar" }
if (webinfclasses.exists()) { pathelement location: webinfclasses }
}
}
您可以将 javac 任务外部的类路径定义为 Ant 路径。然后,您可以保存生成的org.apache.tools.ant.types.Path
对象以获取其路径条目并将其打印到 System.out。在javac任务中,你可以引用类路径及其refid:
new AntBuilder ().with {
compileClasspath = path(id: "compile.classpath") {
fileset(dir: "libs") {
include(name: "**/*.jar")
}
}
// print the classpath entries to System.out
compileClasspath.list().each { println it }
javac (...) {
classpath (refid: "compile.classpath")
}
}