我想使用FileSet来准确指示我想要使用Javac任务编译哪些文件。我不想要任何隐含的行为。然而,我的尝试却失败了。这是我到目前为止:Ant:通过javac任务使用文件集
一个包含我所有源文件的FileSet。
<fileset id="srcfiles" dir="${srcdir}">
<include name="**/*.java"/>
</fileset>
并试图将它传递给javac的目标。
<target name="build">
<javac srcdir=".">
<fileset refid="srcfiles"/>
</javac>
</target>
这给了我这个错误:javac doesn't support the nested "fileset" element.
阅读蚂蚁文档后,我试图改变最内层标签从fileset
到sourcepath
。这在文件被编译的意义上是有效的,但它仍然是错误的:srcfiles doesn't denote a path
。我认为源只是由于隐含的规则而编译的。
我怎样才能明确地告诉javac我想编译的单个文件?或者这不是蚂蚁应该如何工作?我来自C++背景,其中识别源文件是构建过程的重要组成部分。但是,鉴于Java的文件命名和目录结构要求,可能隐含的**/*.java
模式规则涵盖了所有用例。
目前,是的,我只是编译一个特定目录下的所有* .java文件。我想要一个通用的解决方案,以防万一发生变化。然而,我越想到它,我不确定在Java项目上会发生什么变化...... –
对于java项目来说,首先你必须考虑项目的目录结构。 '标准'的方式是你必须有** build和src ** dir。其他目录是可选的:)简单的方法是,从maven目录结构看:) – martinusadyh
如果你想了解更多关于java目录结构的知识,请看本页[标准目录布局简介](http://maven.apache .ORG /引导件/导入/引入到该标准的目录-的layout.html) – martinusadyh