Where do I put resources in my maven project?
Author: Deron Eriksson
Description: This tutorial describes where to put resources in maven projects.
Tutorial created using: Windows Vista || JDK 1.6.0_04 || Eclipse Web Tools Platform 2.0.1 (Eclipse 3.3.1)

In a project that follows the mavenSW conventions, resources such as *.properties files can be placed in a src/main/resources directory. The files/folders in this directory will be copied to the root level of the jarW (or other similar package) that is generated for the project. A common use of the resources directory is to place a META-INF directory within the resources directory, and to place files destined for the META-INF directory (within the packaged jar file) within this directory, since they will get packaged into the final jar file.

As an example of this, I have a basic project called "aproject" with a "jar" packaging. I created a resources directory within main. I placed a textfile.txt file within resources. I also created a META-INF directory within resources, and I created a this-goes-in-META-INF.txt file within this directory. If I perform a "mvn clean package" on "aproject", we can see that the contents of the resources directory get copied to the target/classes directory.

'aproject' structure

If I perform a "jar tf aproject-1.0-SNAPSHOT.jar" to see the contents of the generated jar file, I see the following:

Contents of 'aproject' jar file


We can see that the contents of the resources directory have been placed in the jar file relative to the root level of the jar file.