欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用maven来新建一个java项目 博客分类: maven maven

程序员文章站 2024-03-13 14:03:09
...
本教程将会讲解如何用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文件
项目结构如下:

使用maven来新建一个java项目
            
    
    博客分类: maven maven
按照如下步骤,把项目导入到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的目录下面, 参考如下:

使用maven来新建一个java项目
            
    
    博客分类: maven maven

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








  • 使用maven来新建一个java项目
            
    
    博客分类: maven maven
  • 大小: 7.9 KB
  • 使用maven来新建一个java项目
            
    
    博客分类: maven maven
  • 大小: 9.5 KB
相关标签: maven