Install Maven on Windows (See the box below for Mac directions):
Download the zip archive of latest version of Maven. Be sure to download the binary zip, not the source (“src”) zip!
Extract it to someplace. I suggest C:\Java\ (used in the directions that follow), but anyplace you wish is fine.
I suggest you rename the folder from apache-maven-version to something simpler, such as just maven.
Add this entry to the PATH environment variable: C:\Java\maven\bin (use the folder name you picked).
Add this new environment variable: M2_HOME=C:\Java\maven
Make sure you have the following environment variable set: JAVA_HOME=C:\java (or whatever location you used for the JDK).
(As a reminder: PATH is used by your system to locate executables such as mvn or java; CLASSPATH is used by Java to locate packages and some other things; JAVA_HOME is used by various programs (including Maven) to locate a JDK; and M2_HOME (previously known as MAVEN_HOME) is used by mvn to locate various configuration files. All of these may be used by other programs to locate files they need. While some programs are smart enough to guess to try default install locations when you don’t set these variables, that won’t work if you don’t install in the default locations.)
Install Maven on Mac OS X
There are several ways do to this. One is to follow the standard install directions for a Linux-like system, found on the Maven website. The simplest way seems to be this:
Install Homebrew if you don’t already have that: visit brew.sh, copy the long line shown, and paste it in a terminal window. Doing this provides you with the brew command to install things.
Run the command brew install maven.
If your version of OS X doesn’t include the tree command, you can install that using the command brew install tree.
First, pick (or create) an empty directory to hold your Maven projects, and cd into it. Next, create a working “Hello, World” project named “hello” using the command (one long line):mvn archetype:generate -DgroupId=cop2805 -DartifactId=hello -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
That might take a while the first time. When done, see what files were created by using the tree/F hello command (just tree on Mac or Linux). Also take a look in your home directory; you should see a new subdirectory there named .m2. That’s your personal Maven repo.
Next cd into your new hello directory. Take a look at the generated source code at src/main/java/cop2805/App.java, the generated unit test atsrc/main/java/cop2805/App.java, and the generated pom.xml file. (When using Maven “for real”, you would edit the POM file and then edit or replace the App.javaand AppTest.java files.)
If using Java 9, you will need to add some lines to your pom.xml file. The reason is, the current version of Maven’s compile plugin tries to generate code compatible with Java 5 (“javac -release 5 -source 5”), and Java 9 only supports Java 6 through 9. To fix, you need to add these four lines in your generated pom.xml: <properties> <maven.compiler.source>1.9</maven.compiler.source> <maven.compiler.target>1.9</maven.compiler.target> </properties>
Those lines can go anywhere between the initial <project> tag and the final </project> tag, but not inside of any other tags. Just above the final </project> tag is fine. (Hopefully, a new version of that plugin will address that problem!)
Next, compile, test, package, and install your project. Maven will automatically put a copy into your local repo, ~/.m2/ (“~” means your home directory.). This is done with the simple command:mvn install
Run the tree/F (or tree) command to see the new files created. (Also look in your home directory and use tree on the .m2 directory there.) Notice the JAR file; that is the resulting application. To run this Jar file, enter the command (without changing directories first):
java -cp target\hello-1.0-SNAPSHOT.jar cop2805.App
Finally, there are a couple of other Maven commands to play with:
Try “mvn site” to generate a website for your project. You can view the site in your web browser by opening the file “…/hello/target/site/”.
Convert your Maven project to an Eclipse-Maven project: “mvn eclipse:eclipse”. If you import this project into Eclipse, it should just work.
Try to convert your “Hello, world” projects from the two IDEs into Maven projects. Notice how the layout of folders is now different from the default for your Eclipse and NetBeans IDEs.