Maven step by step

Both Windows and Linux can use the same steps here.

Download maven
http://apache.arvixe.com/maven/maven-3/3.3.3/binaries/apache-maven-3.3.3-bin.zip

Extract it to C:\maven\apache-maven-3.3.3
Set an environment variable MAVEN_HOME to C:\maven\apache-maven-3.3.3
Add the %MAVEN_HOME%\bin to PATH. Linux uses this $MAVEN_HOME/bin

Set the Maven Repo directory
Open MAVEN_HOME\conf\settings.xml

Find the "localRepository", uncomment and edit it:

<localRepository>C:/maven/maven_repo</localRepository>

If you use proxy to access internet, find "proxy", uncomment and edit it:

    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>proxyuser</username>
      <password>proxypass</password>
      <host>proxy.host.net</host>
      <port>80</port>
      <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>

Generate a new Java project by Maven

mvn -B archetype:generate \
      -DarchetypeGroupId=org.apache.maven.archetypes \
      -DgroupId=com.example.app \
      -DartifactId=my-app

Build and Run the project

mvn package

java -cp target/my-app-1.0-SNAPSHOT.jar com.example.app.App

make the Maven project available in Eclipse

mvn eclipse:eclipse

Adding the Report into project documents:

Open the pom.xml and add this:

<reporting>
    <plugins>
	<plugin>
		<groupId>org.apache.maven.plugins</groupId>
	        <artifactId>maven-javadoc-plugin</artifactId>
		<configuration>
		<links>
		<link>http://commons.apache.org/lang/api</link>
		<link>http://java.sun.com/j2se/1.7.0/docs/api</link>
		</links>
		</configuration>
		</plugin>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-surefire-report-plugin</artifactId>
		</plugin>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-jxr-plugin</artifactId>
		</plugin>
		</plugins>
</reporting>

Run this to generate project document
# mvn site
Open this in Web browser
# target/site/index.html

Make JAR executor file for project

Add this into pom.xml

<build>
	<plugins>
	<!-- Make this jar executable -->
	<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-jar-plugin</artifactId>
	<configuration>
		<archive>
			<manifest>
			<!-- Jar file entry point -->
			<mainClass>com.example.app.App</mainClass>
			</manifest>
		</archive>
	</configuration>
	</plugin>
	</plugins>
	</build>

Run it
# mvn install
# java -jar target/my-app-1.0-SNAPSHOT.jar

Run the main method inside a maven phase

        <build>
	<plugins>

	        <plugin>
		<groupId>org.codehaus.mojo</groupId>
		<artifactId>exec-maven-plugin</artifactId>
		<executions>
		<execution>
		<phase>test</phase>
		<goals>
		<goal>java</goal>
		</goals>
		<configuration>
		<mainClass>com.example.app.App</mainClass>
	<!-- <arguments> <argument>arg0</argument> <argument>arg1</argument>
		</arguments>
        -->
		</configuration>
		</execution>
		</executions>
		</plugin>

	</plugins>
	</build>

Run the test phase and the method will also execute too.
# mvn test

Loading