ant - как включить файлы .java в путь к классам

Сначала обратите внимание: мне не нужно включать файлы .jar!

Я хочу включить файлы .java из другого проекта Java с помощью ant. Но я не знаю как, и гугл тоже не знает. Мой build.xml выглядит так:

<project>

    <!-- Main properties -->
    <property name="projectname"    value="rasco" />
    <property name="mainclass"      value="de.beyermatthias.rasco.Rasco" />
    <property name="lib.dir"        value="./lib/java-speech-api/src/" />

    <path id="classpath">
            <pathelement path="${lib.dir}"/>
    </path>

    <!-- Tasks -->
    <!-- Clean Task -->
    <target name="clean">
            <delete dir="build" />
    </target>

    <!-- Compile Task -->
    <target name="compile" depends="clean" >
            <mkdir dir="build/classes" />
            <javac srcdir="src" destdir="build/classes/">
            </javac>
    </target>

    <!-- Jar Task -->
    <target name="jar" depends="compile" >
            <mkdir dir="build/jar" />
            <jar destfile="build/jar/${projectname}.jar" basedir="build/classes/">
                    <manifest>
                            <attribute name="Main-Class" value="${mainclass}" />
                    </manifest>
            </jar>
    </target>

    <!-- Run Task -->
    <target name="run">
            <java jar="build/jar/${projectname}.jar" fork="true" />
    </target>
</project>

Моя иерархия проектов выглядит следующим образом:

 .
 ├── build
 │   └── classes
 ├── build.xml
 ├── lib
 │   └── java-speech-api
 │       ├── CHANGELOG.markdown
 │       ├── CREDITS.markdown
 │       ├── java-speech-api.iml
 │       ├── README.markdown
 │       └── src
 │           ├── com
 │           │   └── darkprograms
 │           │       └── speech
 │           │           ├── microphone
 │           │           │   └── Microphone.java
 │           │           ├── recognizer
 │           │           │   ├── FlacEncoder.java
 │           │           │   ├── GoogleResponse.java
 │           │           │   └── Recognizer.java
 │           │           └── synthesiser
 │           │               └── Synthesiser.java
 │           └── META-INF
 │               └── MANIFEST.MF
 └── src
     └── de
         └── beyermatthias
             └── rasco
                 └── Rasco.java

В большинстве руководств говорится о включении файлов .jar в путь к классам, но, как видите, мне нужно включить файлы .java. Я надеюсь, что вы можете мне помочь.


person musicmatze    schedule 07.09.2012    source источник
comment
файл .java является исходным файлом, поэтому вам нужно получить исходный код для компиляции.   -  person Roman C    schedule 08.09.2012


Ответы (2)


Вы можете включать папки скомпилированных файлов .class, но не исходные файлы .java.

person Dan D.    schedule 07.09.2012
comment
Как бы Вы это сделали? - person David Brossard; 24.02.2016

Вы можете использовать несколько элементов src в javac. Это будет выглядеть так:

<javac destdir="some_dir" classpath="some_classpath" ... >
   <src path="some_source" />
   <src path="some_other_source"/>
 </javac> 
person blachab    schedule 17.01.2014