我有一个 Java 项目,所有源文件都在 src
文件夹中。此 src 文件夹包含多个包。其中一些包/文件夹不包含任何 Java 代码。它们只包含一些我在应用程序中用作图标的图像。
目录结构类似于以下内容。
src/
com/
example/
pk1/ # This contains only some Java files.
pk2/ # This will contain some XML and Java code.
im1/ # This subfolder will contain just the images
现在,当我使用 javac
任务时,它会将所有 Java 文件编译为类文件,并将它们存储在我指定的目标目录中。但是,非 java 文件仍保留在源文件夹中。
我把这个问题提到了SO。但是,我认为就我而言,我想将所有非 Java 资源文件(无需显式指定要移动的文件)自动包含在 build
目录(包含所有类文件的目录)中,同时遵循与源代码相同的目录结构。
如果我错过了一些非常琐碎的东西,请原谅我,但我如何要求蚂蚁这样做?
使用 ant copy
任务将资源复制到classes
目录(或存储.class
文件的任何位置)。 缺省情况下,ant 保留目录结构。
例如:
<copy todir="classes">
<fileset dir="com/example">
<exclude name="**/*.java"/>
</fileset>
</copy>
只是为了完成前面的答案,块
<copy todir="classes">
<fileset dir="com/example">
<exclude name="**/*.java"/>
</fileset>
</copy>
在任务 javac 之前
<javac [...]
并在目标编译内部
<target name="compile" [...]
然后
<target name="compile" [...]>
<copy todir="&&&" [...]>
[...]
</copy>
<javac srcdir="[...]" destdir="&&&" >
</javac>
</target>
在我的例子中,标签"复制"的属性"todir"与标签"javac"的属性"destdir"相同;我想详细说明答案,以便尽可能立即为您提供解决方案。