I'm writing an Ant build.xml file for an executable JAR for the first time, and am stumped as to what I need to include in the JAR.
The project can be thought of being composed of the following:
- The source code
- A handful of dependency JARs
- A Spring configuration file (XML) for IoC via ClassPathXmlApplicationContext
Here's my question: since this is an executable JAR, should I be JARring up all the dependency JARs as well, or should I keep them separate? I suspect I need to include them in the JAR, and if this is true, what would best practices dictate for organizing my JAR?
Here's my first attempt:
MyExecutableJARProgram.jar/
META-INF/
...
com/
lib/
config/
Where com/
is my top-level package, lib/
is a directory housing all of these dependencies, and config/
holds the required XML files.
(1) Any thoughts?
Also, as a side question, since the JAR file will have a different directory structure than my Eclipse project, I need someway of setting up the classpath for my JAR (so it knows to look in, say, lib/
for its dependencies), as well as specifying where to look for my Spring XML file.
(2) How do I configure this in the JAR - the manifest file? There must be some way to configure the manifest (or whatever is the answer to this question) file through Ant so I don't need to manually edit the JAR every time I build.
Thanks for any input!