Using the Maven Console

If you are repeatedly running Maven from the command line, you can save yourself some time by using the Maven Console. The Maven Console provides a "shell" where you can type in the name of a goal for Maven to execute. By using the Maven Console, you can avoid waiting for the Java Virtual Machine (JVM) to start up every time you want to run a Maven goal.

How do I do that?

The Maven Console is a plug-in, and you can start it by entering maven console at the command prompt. This should produce the following output:

_ _  _ _
|  \/  |_ _ _Apache_ _ _ _ _
| |\/| / _` \ V / -_) ' \  ~ intelligent projects ~
|_|  |_\_ _,_|\_/\_ _ _|_||_|  v. 1.0.2
  
The following commands are available:
  
    list - list all available goals
    help - this message
    <goalname> - attain a goal
    quit - quits the console
  
test-application 1.0 >

At this point, you can execute any goal you could execute from the command line. Go ahead and try it; type java:compile. Maven will execute the java:compile goal and return you to the prompt to wait for another goal. To run two goals in sequence, you may enter them at the prompt, separated by a space—for example, clean test. This is known as "goal chaining" and it is a way for you to specify a series of goals you want Maven to obtain, in order. To exit the Maven Console, type quit, and to see a list of available goals, type list.

What just happened?

Maven executed the java:compile goal very quickly in the Maven Console, didn't it? When you use the Maven Console you are executing a goal in an existing JVM. When you run Maven from the command line, you have to wait for the JVM to start up every time you want to run a goal. If you are not convinced of the performance improvement, try it for yourself. Run the java:compile goal from the command line 10 times in a row, and then run the same java:compile goal from the Maven Console 10 times. Take note of the time difference, and you will see that the JVM startup time begins to increase. Use the Maven Console if you find yourself frequently running Maven goals, as it saves time by starting a JVM once.

Get Maven: A Developer's Notebook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.