当源文件是包的一部分,并且源树的目录结构不遵循包的层次结构时,javac
ant
任务无法编译java类。然而,我发现在不同的机器上,相同的
build . xml
文件运行正常
例如,如果我有一个java文件的包作为com.abc.myapp.server.base
,如果我的源文件放在C:mySourcebase
文件夹下,javac
无法编译这个类。但是,如果我将.java
源文件移动到C:mySourcecomabcmyappserverbase
文件夹下,一切都很好。
我在Windows 7上使用ANT 1.8.0版本和JDK 1.7.0_17版本。
请告诉
听起来您没有设置目录结构来匹配java源文件的包。类"org.example.abc."的源代码。"HelloWorld"应该放在/src/org/example/abc这样的目录下。
通常,您希望build.xml位于您试图构建的任何项目的顶层,然后其中的javac任务可以引用包结构开始的源目录。
像这样:
<project name="example" default="compile">
<target name="compile" description="compiles">
<mkdir dir="build"/>
<javac srcdir="src" destdir="build"/>
</target>
</project>
这显然是非常简化的,但应该帮助你开始。
如果你仍然有问题,把你的build.xml和一些项目布局的描述贴出来,这样我们可以帮助你。