使用maven来新建一个java项目

本教程将会讲解如何用maven来创建一个java项目,并把项目导入到eclipse中,并利用maven来打成jar包。

本教程用到的开发工具:
1.Apache Maven 3.3.3
2.Eclipse Mars Release (4.5.0)
3.JDK 7

[quote]注意:
在项目开始之前,请确保你已经在开发环境中安装了Maven,你可以在控制台输入:mvn --version 来查看是否安装了maven,如果提示mvn command not find的话,请自行google如何安装maven[/quote]

1. 使用一个maven的其中一个模板来创建一个java项目
首先来到你要新建项目的文件目录,打开命令行窗口, 在命令行窗口中,输入如下的命令:

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


以上命令就是告诉maven按照maven-archetype-quickstart模板来创建一个java项目,如果你没有指定archetypeArtifactId选项的话,系统将会列出所有的maven模板。

举个例子:

mvn archetype:generate -DgroupId=com.luchenghao -DartifactId=NumberGenerator -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
[INFO] Scanning for projects...
Downloading:xxx
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:2.0:generate (default-cli) > generate-sources
@ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:2.0:generate (default-cli) < generate-sources
@ standalone-pom <<<
[INFO]
[INFO] --- maven-archetype-plugin:2.0: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: groupId, Value: com.luchenghao
[INFO] Parameter: packageName, Value: com.luchenghao
[INFO] Parameter: package, Value: com.luchenghao
[INFO] Parameter: artifactId, Value: NumberGenerator
[INFO] Parameter: basedir, Value: C:\Users\e611265\workspace
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] ********************* End of debug info from resources from generated POM
***********************
[INFO] project created from Old (1.x) Archetype in dir: C:\Users\e611265\workspa
ce\NumberGenerator
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 24.356 s
[INFO] Finished at: 2017-02-08T15:37:28+08:00
[INFO] Final Memory: 10M/27M
[INFO] ------------------------------------------------------------------------


上面的例子中,就创建了一个NumberGenerator的java项目,项目的目录结构就都创建好了。

2. 项目目录结构如下:

使用mvn archetype:generate和maven-archetype-quickstart模板得到的结果:
[quote]
NumberGenerator
|-src
|---main
|-----java
|-------com
|---------luchenghao
|-----------App.java
|---test
|-----java
|-------com
|---------luchenghao
|-----------AppTest.java
|-pom.xml
[/quote]

Maven目录链接:[url]http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html[/url]

Pom Guide链接:[url]http://maven.apache.org/guides/introduction/introduction-to-the-pom.html[/url]

生成的pom.xml文件:

<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.luchenghao</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>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>


3. Eclipse IDE
使用下面的命令把NumberGenerator项目转换成eclipse项目

mvn eclipse:eclipse

这个命令会产生eclipse项目所需要的.project和l.classpath文件
项目结构如下:

[img]http://dl2.iteye.com/upload/attachment/0122/9578/a7ad416e-ce07-3f3b-ab15-c96fc6ec61f6.png[/img]
按照如下步骤,把项目导入到eclipse中, 选择“File -> Import… -> General->Existing Projects into Workspace”

4. 更新POM文件
原始的pom文件比较简单,通常情况下,我们需要添加一个plugin来告诉maven使用哪个版本的jdk来编译我们的项目(默认的jdk是1.4的,这个比较老了)

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>


然后把junit的version也从3.8.1更新到4.11

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>



更新之后的完整的pom文件如下:

<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.luchenghao</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.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
</project>


然后在命令行,再次执行命令:mvn eclipse:eclipse,Maven会去下载相应的plugin和依赖的jar包。

5. 写业务逻辑

基于TDD(Test Driven Development)测试驱动开发原则,先更新一下UnitTest类。
AppTest.java文件:

package com.luchenghao;

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

/**
* Unit test for simple App.
*/
public class AppTest
{

@Test
public void testLengthOfTheUniqueKey() {

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

}
}



业务逻辑类App.java

package com.luchenghao;

import java.util.UUID;

/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
App obj = new App();
System.out.println("Unique ID : " + obj.generateUniqueKey());
}

public String generateUniqueKey() {
String id = UUID.randomUUID().toString();
return id;
}
}


6.打jar包
在项目当前目录下面:
C:\Users\e611265\workspace\NumberGenerator>pwd
C:\Users\e611265\workspace\NumberGenerator

执行如下命令:
mvn package
......
[INFO] Building jar: C:\Users\e611265\workspace\NumberGenerator\target\NumberGen
erator-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 04:00 min
[INFO] Finished at: 2017-02-08T20:33:29+08:00
[INFO] Final Memory: 8M/26M
[INFO] ------------------------------------------------------------------------

打出来的jar包,在target的目录下面, 参考如下:

[img]http://dl2.iteye.com/upload/attachment/0122/9588/3537c2b1-1e77-3d78-9a15-5792f9c10443.png[/img]

7. Demo

执行如下java命令:
当前目录:C:\Users\e611265\workspace\NumberGenerator>


C:\Users\e611265\workspace\NumberGenerator>java -cp target/NumberGenerator-1.0-S
NAPSHOT.jar com.luchenghao.App
Hello World!
Unique ID : 509351b1-3c5d-4b79-b489-220ccea9c38d



项目下载链接:
[url]http://dl.iteye.com/topics/download/8e33c5d7-03d2-3638-8f44-e3095adbb1ca[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值