考虑以下项目布局隐式编译(假设A和B是互相依赖的):多个源文件夹:避免与蚂蚁
.
|-- bin1
|-- bin2
|-- src1
| `-- A.java
`-- src2
`-- B.java
编译之后,我想的类驻留在liike该各自的文件夹:
.
|-- bin1
| `-- A.class
|-- bin2
| `-- B.class
|-- src1
| `-- A.java
`-- src2
`-- B.java
这是通过命令行相当简单:
$ javac -implicit:none -sourcepath src1:src2 -d bin1 src1/*
$ javac -implicit:none -sourcepath src1:src2 -d bin2 src2/*
如果这样配置,Eclipse也是这样做的。但我无法弄清楚如何用Ant来做到这一点。
附录:我现在javac
任务:
<javac destdir="${classes.1.dir}">
<src path="${src.1.dir}" />
<src path="${src.2.dir}" />
</javac>
<javac destdir="${classes.2.dir}">
<classpath path="${classes.1.dir}" />
<src path="${src.2.dir}" />
</javac>
注意循环依赖。 第二个任务运行良好,它只编译src2
中的内容,因为它对另一个内部版本具有classpath
依赖关系。 第一个任务,但是,不能采取classpath
,因为还没有编译,并且src
它当然编译太多。
您可以结合前两个`javac`任务。除此之外,这个解决方案似乎尽可能的干净。编译往往是我的Ant运行的最小部分(单元测试需要更长的时间),所以双编译看起来完全可以接受。 – 2011-01-10 08:02:04