在Ant中,如果我的项目中有一个单独的编译过的class文件(比如在gen/stragglers/SomePOJO.class
中,当我目前有以下文件时,有没有一种方法可以专门将该类文件添加到我的<javac>
编译类路径中?
<javac includeantruntime="false" srcdir="src/main/java"
destdir="gen/bin/main">
<classpath refid="main.compile.path"/>
</javac>
如果没有,为什么?如果是,如何?提前感谢!
您不能添加单个类文件,您可以将目录添加到类路径中,编译器将在该目录下从其包结构派生的相对路径中查找类。据我所知,这是不可协商的-目录结构必须与包结构匹配。
例如,如果SomePOJO.class
中定义的类是stragglers.SomePOJO
,那么您应该将gen
目录添加到类路径中
<javac includeantruntime="false" srcdir="src/main/java"
destdir="gen/bin/main">
<classpath>
<pathelement location="gen" />
<path refid="main.compile.path"/>
</classpath>
</javac>
如果.class
文件的路径与类的package
声明不匹配,则必须将其移动到与包结构匹配的临时目录中,然后将该目录添加到类路径中。
创建一个引用类文件的路径:
<path id="javac.classpath">
<pathelement location="./gen/stragglers/SomePOJO.class"/>
</path>
然后在javac任务中使用它:
<javac srcdir="./src/main/java" destdir="./gen/bin/main">
<classpath refid="javac.classpath"/>
</javac>