`
xfxlch
  • 浏览: 162601 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用maven来新建一个java项目

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

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

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


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模板得到的结果:
引用

NumberGenerator
   |-src
   |---main
   |-----java
   |-------com
   |---------luchenghao
   |-----------App.java
   |---test
   |-----java
   |-------com
   |---------luchenghao
   |-----------AppTest.java
   |-pom.xml


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

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

生成的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文件
项目结构如下:


按照如下步骤,把项目导入到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的目录下面, 参考如下:



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



项目下载链接:
http://dl.iteye.com/topics/download/8e33c5d7-03d2-3638-8f44-e3095adbb1ca








  • 大小: 7.9 KB
  • 大小: 9.5 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics