I've got a Maven project that runs perfectly inside Netbeans. How can I execute the application from the command-line (without Netbeans)?
There's a plugin for that: http://mojo.codehaus.org/exec-maven-plugin/introduction.html
$ mvn exec:java -Dexec.mainClass="com.mycompany.App"
Assuming com.mycompany.App
is you mainclass.
Using the Maven Exec Plugin and its exec:java
goal as suggested is a first option. And the command suggested is correct, you have to specify -Dexec.mainClass=VALUE
on the command line.
mvn exec:java -Dexec.mainClass=com.acme.Hello
Regarding your "classpath problem", well, you didn't describe it very clearly. What is your problem? What are your dependencies exactly? Just in case, there is a classpathScope
parameter allowing to define the scope of the classpath passed to the plugin. E.g.:
mvn exec:java -Dexec.classpathScope=compile -Dexec.mainClass=com.acme.Hello
As an alternative to the above plugin, there is MOP. What is MOP?
What is MOP?
MOP is a small utility for executing Java programs which are stored as artifacts like jars or bundles in a Maven repository.
MOP automatically deals with the following for you
- transitive dependencies
- downloading artifacts from remote repositories and caching them locally
- setting up your classpath