How to use Ant include non-java resource files with compiled classes
ant, java
Solution
Use the ant `copy` task to copy your resources into the `classes` directory (or wherever your `.class` files are stored). By default, ant keeps the directory structure.
For example:
<copy todir="classes">
<fileset dir="com/example">
<exclude name="**/*.java"/>
</fileset>
</copy>
Problem
I have a Java project with all source files in the `src` folder. This src folder contains several packages. Some of these packages/folders do not include any Java code. They just contain some images that I use in the application as icons. The directory structure is similar to the following. ``` 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 ``` Now, when I use the `javac` task, it compiles all the Java files into class files and stores them in the destination directory that I specify. However, an non-java files remain as is in the source folder. I referred this Question on SO. However, I think in my case I want to include all non-Java resource files (without the need to explicitly specifying what files to be moved) automatically into the `build` directory (one that contains all the class files) while following the same directory structure as in source. Pardon me if I am missing something very trivial, but how do I ask Ant to do this?