如何使用 Ant 将非 Java 资源文件与已编译的类一起使用



我有一个 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"相同;我想详细说明答案,以便尽可能立即为您提供解决方案。

相关内容

  • 没有找到相关文章

最新更新