The tools you need:
- Maven 3.3.3
- Eclipse 4.2
- JDK 8
Note: Make sure that Maven is properly installed and configured (in the Windows,*nix,mac OSX system), and then start this tutorial to avoid the MVN command not finding errors. 1. Create a project from the Maven template
In the terminal (* Unix or Mac) or command prompt (Windows), browse to the folder where you want to create the Java project. Type the following command:
MVN archetype-dgroupid={Project-packaging-dartifactid={Project-name} -darchetypeartifactid=maven-archetype-dinteractivemode=false
This tells Maven to create a Java project from the Maven-archetype-quickstart template. If you ignore the Archetypeartifactid option, a huge list of Maven templates will be listed.
For example, the working directory here is: C:\worksp, the execution of the command process may be a long time to see the personal network situation.
C:\WORKSP>MVN Archetype:generate-dgroupid=com.yiibai-dartifactid=numbergenerator-darchetypeartifactid=maven- Archetype-quickstart-dinteractivemode=false[info] Scanning for projects ... [INFO] [INFO]------------------------------------------------------------------------[INFO] Building Maven Stub Project ( No POM) 1[info]------------------------------------------------------------------------[Info][info] >>> Maven-archetype-plugin:2.4:generate (DEFAULT-CLI) > generate-sources@ standalone-pom >>>[INFO][INFO] <<< maven-archetype-plugin:2.4:generate (DEFAULT-CLI) < generate-sources@ Standalone-pom <<<[ Info][info]---maven-archetype-plugin:2.4:generate (default-cli) @ standalone-pom---[INFO] generating project in Batch Mode[info]----------------------------------------------------------------------------[INFO] Using following Parameters for creating project from the old (1.x) Archetype:maven-archetype-quickstart:1.0[info]----------------------------------------------------------------------------[INFO] Parameter:basedir, Value:c:\worksp[info] Parameter: Package, Value:com.yiibai[info] parameter:groupid, Value:com.yiibai[info] Parameter:artifactid, Value: Numbergenerator[info] Parameter:packagename, Value:com.yiibai[info] parameter:version, Value:1.0-snapshot[info] Project created from old (1.x) archetype in Dir:c:\worksp\numbergenerator[info]-------------------------------------- ----------------------------------[INFO] BUILD Success[info]---------------------------------------------------- --------------------[INFO] Total time:23.166 s[info] finished At:2015-10-27t11:03:48+08:00[info] Final memory:17m/ 114m[info]------------------------------------------------------------------------
In the above scenario, a new Java project is named "Numbergenerator", and the entire project's directory structure is created automatically.
Note
A few users said that the MVN archetype:generate command failed to generate the project structure. If you have any similar problems, don't worry, just skip this step and manually create the folders, see the project structure in step 2. 2.Maven Catalog Layout
Using the MVN archetype:generate + maven-archetype-quickstart template, the following project's directory structure was created.
Numbergenerator |-SRC |---main |-----java |-------com |---------yiibai |----------- App.java |---test|-----java |-------com |---------yiibai |-----------Apptest.java | Pom.xml
Quite simply, all the source code is placed in the folder/src/main/java/, and all the unit test codes are put into/src/test/java/.
Note, please readMAVEN Standard Catalog Layout
A standard pom.xml that is attached is generated. This pom file is similar to the Ant Build.xml file, which describes the entire project information, everything from directory structure, project plug-ins, project dependencies, how to build this project, etc., please read the official POM Guide
POM.XML3. Eclipse IDE
To make it an Eclipse project, enter the "Numbergenerator" item in the terminal and type the following command:
C:\WORKSP\NUMBERGENERATOR>MVN eclipse:eclipse ... [INFO] Using Eclipse Workspace:null[info] Adding default Classpath container:org.eclipse.jdt.launching.jre_container[info] Not writing Settings-defaults Suffice[info] wrote Eclipse project for "Numbergenerator" to C:\worksp\NumberGenerator. [INFO] [INFO]------------------------------------------------------------------------[INFO] BUILD Success[info]-------- ----------------------------------------------------------------[INFO] Total time:04:47 min[info] finished at: 2015-10-27t15:24:48+08:00[info] Final Memory:15m/164m[info]----------------------------------------------------- -------------------
After executing the above command, it automatically downloads updates related resources and configuration information (it will take some time) and produces all the project files required by the Eclipse IDE. To import the project into the Eclipse IDE, select "File, Import ...-general->existing Projects into Workspace"
Picture: The project is imported into the Eclipse IDE.
4. Updating the POM
The default pom.xml is too simple, and many times you need to add a compiler plugin to tell Maven which JDK version is used to compile the project. (Default JDK1.4, this is really too old a bit)
<plugin><groupid>org.apache.maven.plugins</groupid><artifactid>maven-compiler-plugin </artifactId><version>2.3.2</version><configuration><source>1.6</source> <target>1.6</target></configuration></plugin>
From updating JUnit 3.8.1 to the latest 4.11.
<dependency><groupid>junit</groupid><artifactid>junit</artifactid><version >4.11</version><scope>test</scope></dependency>
Maven coordinates
The XML snippet above is called "maven coordinates", and if you need a JUnit jar, you need to find its corresponding MAVEN coordinates. It applies to all other dependencies, such as Spring,hibernate,apache Common , and so on, just go to the MAVEN central repository and find out which ones are dependent on the correct MAVEN coordinates. pom.xml– Updated version
<project xmlns= "http://maven.apache.org/POM/4.0.0" xmlns:xsi= "Http://www.w3.org/2001/XMLSchema-instance" xsi: schemalocation= "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" ><modelversion >4.0.0</modelversion><groupid>com.mkyong</groupid><artifactid>numbergenerator</ Artifactid><packaging>jar</packaging><version>1.0-snapshot</version><name> Numbergenerator</name><url>http://maven.apache.org</url><dependencies><dependency ><groupid>junit</groupid><artifactid>junit</artifactid><version>4.11</ Version><scope>test</scope></dependency></dependencies><build> <plugins> <plugin><groupid>org.apache.maven.plugins</groupid><artifactid>maven-compiler-plugin </artifactId><version>2.3.2</version><configuration><source>1.6</source> <target>1.6</target></configuration></plugin> </plugins></build></project>
At the terminal, the same command is issued again MVN eclipse:eclipse, maven will download the plug-in Project dependency (JUnit) from the MAVEN central repository and it will automatically be saved to your local repository.
5. Update business logic
Test-driven Development (TDD), which updates unit tests to ensure that application (app) objects have a way to generate unique keys that contain exactly 36-bit alphabets.
Apptest.java
Package Com.yiibai;import Org.junit.assert;import Org.junit.test;public class Apptest {@Testpublic void Testlengthoftheuniquekey () {app obj = new app (); Assert.assertequals (Obj.generateuniquekey (). Length ());}}
Complete the business logic.
App.java
Package Com.yiibai;import java.util.uuid;/** * Generate a unique number * */public class APP {public static void main (string[] args) { App obj = new app (); System.out.println ("Unique ID:" + Obj.generateuniquekey ()); } Public String Generateuniquekey () { string id = Uuid.randomuuid (). toString (); return ID;} }
6. Maven Packaging
Now we will use MAVEN for this project and output the files compiled into a "jar". Refer to the Pom.xml file, package element defines what should the package should output.
Pom.xml
<project ...><modelversion>4.0.0</modelversion><groupid>com.yiibai</groupid>< artifactid>numbergenerator</artifactid><packaging>jar</packaging><version>1.0- Snapshot</version>
In Terminal input MVN package:
C:\worksp\numbergenerator> mvn Package ... ...ha-2/classworlds-1.1-alpha-2.jar (37 kb at 20.2&NBSP;KB/SEC) DOWNLOADED:&NBSP;HTTPS://REPO.MAVEN.APACHE.ORG/MAVEN2/ORG/CODEHAUS/PLEXUS/PLEXUS-IO/2.0.2/ plexus-io-2.0.2.jar (57 kb at 28.1 kb/sec) downloaded: https:// Repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-inte rpolation/1.15/plexus-interpolation-1.15.jar (60&NBSP;KB&NBSP;AT&NBSP;21.4&NBSP;KB/SEC) Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-arch IVER/2.1/ plexus-archiver-2.1.jar (181 kb at 61.5 kb/sec) downloaded: https:// Repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-util s/3.0/plexus-utils-3.0.jar (221 KB AT&NBSP;60.3&NBSP;KB/SEC) [info] building jar: c:\worksp\numbergenerator\target\ numbergenerator-1.0-snapshot.jar[info] ------------------------------------------------------------------ ------[info] build success[info] ------------------------------------------------------------------------[Info] total time: 01:00 min[info] finished at: 2015-10-27t20:00:17+08:00[info] final Memory: 10M/54M[INFO] ------------------------------------------------------------------------
It compiles, runs unit tests and packages the project into a jar file, and puts it in the Project/target folder. If there is an error:error:unable to locate the Javac Compiler in:, C:\Program Files (x86) \java\jre6\. \lib\tools.jar,please ensure you be using JDK 1.4 or above And,not a JRE (the Com.sun.tools.javac.Main class is required) ...
Reference: http://my.oschina.net/u/1449336/blog/199802
The directory structure of the final project, such as slices:
7. Example
Run the application sample from the project's JAR file
C:\WORKSP\NUMBERGENERATOR>JAVA-CP Target/numbergenerator-1.0-snapshot.jar com.yiibai.AppUnique ID: 94E5FD1A-C038-415F-A8ED-7FC58C397369C:\WORKSP\NUMBERGENERATOR>C:\WORKSP\NUMBERGENERATOR>JAVA-CP target/ Numbergenerator-1.0-snapshot.jar Com.yiibai.AppUnique id:48df568a-4b4b-4964-b767-664e206ca4b5c:\worksp\ NUMBERGENERATOR>JAVA-CP Target/numbergenerator-1.0-snapshot.jar com.yiibai.AppUnique ID: 4ac9156c-2e4a-45f4-8644-0707ae28d5a6
Download code download code-Maven-numbergenerator.zip
Maven Learning (10)-----Create a Java project using MAVEN