Несколько исходных папок: Избегайте неявной компиляции с помощью Ant

Рассмотрим следующий макет проекта (предполагая, что A и B зависят от каждого other):

.
|-- bin1
|-- bin2
|-- src1
|   `-- A.java
`-- src2
    `-- B.java

После компиляции я хочу, чтобы классы располагались в своих соответствующих папках, например:

.
|-- 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 от другой сборки. Однако первая задача не может принимать путь к классам , так как ничего еще не скомпилировано, а с src , конечно, компилируется слишком много.

5
задан Michael Piefel 7 January 2011 в 17:10
поделиться