请先注意:我不需要包含.jar文件!
我想用ant包含来自另一个java项目的.java文件。但我不知道如何和谷歌也不知道。 我的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文件,如您所见。我希望你能帮助我。
答案 0 :(得分:3)
您可以包含已编译的.class文件的文件夹,但不包括.java源文件。
答案 1 :(得分:0)
您可以在javac中使用多个src元素。这看起来像是:
<javac destdir="some_dir" classpath="some_classpath" ... >
<src path="some_source" />
<src path="some_other_source"/>
</javac>