Win a copy of Java Mock Exams (software) this week in the Programmer Certification (OCPJP) forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

Deploying standalone app with Maven 2

Klaas van Gelder
Ranch Hand
Posts: 111
Java Linux PHP
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Dear Maven-experts
I am a Maven newbie and encounter the following issue:
I am developing a pretty simple standalone dataconversion application (with a public static void main(...) method) which imports a number of XML files, parses them and writes some of the data to a database. Nothing special...
Now I want to use Maven to manage the project, define the dependencies, run the unit tests etc. This works without major problems.
But I also want to be able to "deploy" the application, in the sense of running it as an executable jarfile outside Maven or Eclipse.
The problem is: when I run <mvn install>, the generated jarfile contains the compiled sourcefiles, but not the libraries defined in the <dependencies> section. So it does not run.
When I define the packaging as "rar" instead of "jar", a rarfile containing the dependency jarfiles (but not the compiled sourcefiles) is generated.
But what I actually want is a (executable) jarfile containing BOTH the compiled sourcefiles AS WELL AS the dependencies, so it will run without the need to manually copy the libraries and setting the classpath to them...
With Ant, this will not be a big problem, but with Maven... ?
I think it should be a pretty straightforward action to deploy a standalone application containing all needed dependencies using Maven... Do I overlook something ? How can I do this ?
Please, all info is more than welcome !
Best regards, Klaas
Tim Holloway
Posts: 18465
Android Eclipse IDE Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
That pretty much describes how a WAR works. I suppose in a pinch, you could make a WAR and rename the resulting file.

There are some differences, however. A stand-alone JAR execution doesn't add embedded jars into its classpath the way that web app servers do, and I don't know offhand if you can add meta-inf data to WARs using Maven (specifically the Main-Class item).
Happiness is not a goal ... it's a by-product of a life well lived - Eleanor Roosevelt. Tiny ad:
the new thread boost feature: great for the advertiser and smooth for the coderanch user
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!