6 使用Maven创建Java项目

在本篇文章中,将展示如何使用 Maven 来创建一个 Java 项目,导入其到Eclipse IDE,并打包 Java 项目到一个 JAR 文件。

开发环境介绍

IDE: MyEclipse 10.7
jdk: 1.6
maven:apache-maven-3.2.5
基本环境只要上面这些就行.

确保Maven安装正确.

1. 从 Maven 模板创建一个项目

在终端(* UNIX或Mac)或命令提示符(Windows)中,浏览到要创建 Java 项目的文件夹。键入以下命令:

mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name}-DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

这告诉 Maven 来从 maven-archetype-quickstart 模板创建 Java 项目。如果忽视 archetypeArtifactId 选项,一个巨大的 Maven 模板列表将列出。

例如,这里的工作目录是:E:\WorkSpace\Study,执行命令过程时间可能比较久,看个人的网络状况。

E:\WorkSpace\Study>mvn archetype:generate -DgroupId=com.gp6 -DartifactId=MavenTest
or -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 Old (1.x) Archetype:
 maven-archetype-quickstart:1.0
[INFO] -------------------------------------------------------------------------
---
[INFO] Parameter: basedir, Value: E:\WorkSpace\Study
[INFO] Parameter: package, Value: com.yiibai
[INFO] Parameter: groupId, Value: com.yiibai
[INFO] Parameter: artifactId, Value: MavenTest
[INFO] Parameter: packageName, Value: com.yiibai
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: E:\WorkSpace\Study\MavenTest
r
[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] ------------------------------------------------------------------------

在上述情况下,一个新的Java项目命名 “MavenTest”, 而整个项目的目录结构会自动创建。

注意
有少数用户说 mvn archetype:generate 命令未能生成项目结构。 如果您有任何类似的问题,不用担心,只需跳过此步骤,手动创建文件夹,请参阅下面的项目结构。

2.Maven目录布局

使用 mvn archetype:generate + maven-archetype-quickstart 模板, 以下项目的目录结构被创建。

MavenTest
   |-src
   |---main
   |-----java
   |-------com
   |---------gp6   
   |-----------App.java
   |---test|-----java
   |-------com
   |---------gp6
   |-----------AppTest.java
   |-pom.xml

所有的源代码放在文件夹 /src/main/java/, 所有的单元测试代码放入 /src/test/java/.

附加的一个标准的 pom.xml 被生成。这个POM文件类似于 Ant build.xml 文件,它描述了整个项目的信息,一切从目录结构,项目的插件,项目依赖

3. Eclipse IDE

为了使它成为一个 Eclipse 项目,在终端进入到 “MavenTest” 项目,键入以下命令:

E:\WorkSpace\Study\MavenTest>mvn eclipse:eclipse

[INFO] Using Eclipse Workspace: null
[INFO] Adding default classpath container: org.eclipse.jdt.launching.JRE_CONTAIN
ER
[INFO] Not writing settings - defaults suffice
[INFO] Wrote Eclipse project for "MavenTest" to E:\WorkSpace\Study\MavenTest.
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.104 s
[INFO] Finished at: 2017-05-03T15:13:59+08:00
[INFO] Final Memory: 15M/224M
[INFO] ------------------------------------------------------------------------

执行以上命令后,它自动下载更新相关资源和配置信息(需要等待一段时间),并产生 Eclipse IDE所要求的所有项目文件。要导入项目到Eclipse IDE中,选择 “File -> Import… -> General->Existing Maven Projects”

项目导入到 Eclipse IDE中。

6 使用Maven创建Java项目_第1张图片
目录结构
4. 更新POM

默认的 pom.xml 太简单了,很多时候,你需要添加编译器插件来告诉 Maven 使用哪个 JDK 版本是用来编译项目

 
      
          
            org.apache.maven.plugins
            maven-compiler-plugin
            2.3.2
            
                1.6
                1.6
            
          
      
  

从更新JUnit 3.8.1到最新的 4.11。


    junit
    junit
    4.11
    test


Maven 坐标

上面的XML代码片段被称为“Maven坐标”,如果你需要 JUnit 的 jar,你需要找出其相应的 Maven 坐标。它适用于所有其他的依赖,如Spring,Hibernate,Apache 普通的等.


  4.0.0

  com.gp6
  MavenTest
  1.0-SNAPSHOT
  jar

  MavenTest
  http://maven.apache.org


  
    UTF-8
  
  
  
      
          
            org.apache.maven.plugins
            maven-compiler-plugin
            2.3.2
            
                1.6
                1.6
            
          
      
  

  
    
      junit
      junit
      4.11
      test
    
  


在终端,再次发出同样的命令 mvn eclipse:eclipse ,Maven将从Maven中心储存库下载插件项目依赖关系(JUnit),它会自动保存到你的本地仓库。

5. 更新业务逻辑

测试驱动开发(TDD),先更新单元测试,以确保应用程序(APP)对象有一个方法来生成包含恰好36位字母表的唯一密钥。

  • AppTest.java
package com.gp6;

import junit.framework.TestCase;

import org.junit.Assert;
import org.junit.Test;

/**
 * Unit test for simple App.
 */
public class AppTest extends TestCase{
  
    
    @Test
    public void testLengthOfTheUniqueKey() {

        App obj = new App();
        Assert.assertEquals(36, obj.test().length());

    }
}

  • App.java
package com.gp6;

import java.util.UUID;

public class App {
    
    public static void main( String[] args ){
        App obj = new App();
        System.out.println("Unique ID : " + obj.test());
    }
    
    public String test(){
        String id = UUID.randomUUID().toString();
        return id;
    }
}

6. Maven 打包

将使用Maven这个项目,并输出编译成一个 “jar” 的文件。 请参考 pom.xml 文件,包元素定义应该包应该输出什么。

在终端输入 mvn package :

E:\WorkSpace\Study\MavenTest> mvn package

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.gp6.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.083 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ MavenTest ---
[INFO] Building jar: E:\WorkSpace\Study\MavenTest\target\MavenTest-1.0-SNAPSHOT
jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 16.237 s
[INFO] Finished at: 2017-05-03T16:21:31+08:00
[INFO] Final Memory: 14M/217M
[INFO] ------------------------------------------------------------------------

它编译,运行单元测试并打包项目成一个 jar 文件,并把它放在 project/target 文件夹。如果出错:ERROR: Unable to locate the Javac Compiler in:, C:\Program Files (x86)\Java\jre6..\lib\tools.jar,Please ensure you are using JDK 1.4 or above and,not a JRE (the com.sun.tools.javac.Main class is required)...

####### 7. 示例

从项目的 jar 文件运行应用程序示例

E:\WorkSpace\Study\MavenTest>java -cp target/MavenTest-1.0-SNAPSHOT.jar com.gp6.App
Unique ID : 94e5fd1a-c038-415f-a8ed-7fc58c397369

E:\WorkSpace\Study\MavenTest>java -cp target/MavenTest-1.0-SNAPSHOT.jar com.gp6.App
Unique ID : 48df568a-4b4b-4964-b767-664e206ca4b5

E:\WorkSpace\Study\MavenTest>java -cp target/MavenTest-1.0-SNAPSHOT.jar com.gp6.App
Unique ID : 4ac9156c-2e4a-45f4-8644-0707ae28d5a6

你可能感兴趣的:(6 使用Maven创建Java项目)