Can I Mavenize my release process?
I sent the following e-mail to the maven-user mailing list this morning:
Since the deployment of my project's site was so easy using "maven site:deploy", I suspect that's there's an easy way to "package" my app and upload it to SourceForge. For packaging, here's what I had in mind. 1. Creates a "dist" directory. 2. Copies the following directories/files into dist: bin/* conf/* target/lib -> dist/lib 3. zips and gzips contents of dist for distribution. 4. Uploads zip and gzip to upload.sf.net 5. (Optionally) Creates a branch in CVS for this release.
In the midst of writing this post, I actually got an answer! Using "maven dist", I created distributions in target/distributions. This directory contains moblogger-*.jar, LICENSE.txt and a docs folder. A little more work and I'm sure I can get a "lib" directory with all the required .jar's for running moblogger, as well as the bin
and conf
directories. If any of you have examples of dist-ing your project to SourceForge using Maven, please let me know.
Here's a good question for you: Is it possible to create entries in moblogger.jar/META-INF/MANIFEST.MF that point to the other .jar files required to run moblogger? I'd love to simply be able to run:
java -jar moblogger.jar conf/agentsettings.xml
Rather than how it is now (java -cp [each jar listed here] net.sf.moblogger.agent.MoblogAgent conf/agentsettings.xml
). The MANIFEST.MF file generated by Maven gives me the impression that this is possible. Consider the following entry in this file:
Extension-List: jaf,mail,commons-lang,commons-logging,ftp,jdom,log4j,q
uartz,smack,xerces,xmlrpc,junit
jaf-Extension-Name: jaf
jaf-Implementation-Version:
jaf-Implementation-URL: http://www.ibiblio.org/maven/jaf/jars/activati
on.jar
When I try this now, I get:
Exception in thread "main" java.lang.NoClassDefFoundError: org/quartz/SchedulerFactory
I'm assuming that it might be possible to change the Implentation-URL to something to point to the local file in the same directory. If not, is it possible to add these JARs into my moblogger.jar? Or will this violate some JARs licenses?