views:

48

answers:

2

I've got a Maven project that runs perfectly inside Netbeans. How can I execute the application from the command-line (without Netbeans)?

+1  A: 

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.

The MYYN
"-Dexec.mainClass needs to be replaced by -Dmain.class". Secondly the classpath is incorrectly set to "[...]\apache-maven-2.2.1\bin\..\boot\classworlds-1.1.jar". How do I correct this?
Gili
@Gili what is the problem with the classpath exactly? Can you update the question to show the obtained result (and how it differs from the expected one).
Pascal Thivent
+1  A: 

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
Pascal Thivent