(三)《Maven实战》读书笔记 —— 手动创建Maven项目

第3章:Maven使用入门

到目前为止,已经大概了解并安装好了Maven,现在,我们开始创建一个最简单的Hello World项目。

3.1 编写POM

Maven项目的核心是pom.xml。POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建,声明项目依赖等。现在先为Hello World项目编写一个简单的pom.xml。首先创建一个名为hello-world的文件夹,打开该文件夹,新建一个名为pom.xml的文件,输入下面内容。

<?xml version="1.0" encoding="UTF-8"?>
<project>
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.juvenxu.mvnbook</groupId>
	<artifactId>hello-world</artifactId>
	<version>1.0-SNAPSHOT</version>
	<name>Maven Hello World Project</name>
</project>

3.2 编写主代码

项目的主代码和项目的测试代码不同,项目的主代码会被打包到最终的构件中(如jar),而测试代码只在运行测试的时候用到,不会被打包。默认情况下,Maven假设项目主代码位于src/main/java目录,我们遵循Maven约定,创建该目录,然后在该目录下创建文件com.juvenxu.mvnbook.helloworld,将文件目录结构表示包结构,依次创建文件夹。并在该文件下创建HelloWorld.java,输入下面内容。

package com.juvenxu.mvnbook.helloworld;
public class HelloWorld{
	public String sayHello(){
		return "Hello Maven";
	}
	public static void main(String[] args){
		HelloWorld helloworld = new HelloWorld();
		String result = helloworld.sayHello();
		System.out.print(result);
	}
}

在项目根目录下运行命令 mvn clean compile

3.3 编写测试代码

为了使项目结构保持清晰,主代码于测试代码应该分别位于独立的目录中。对应地,Maven项目的默认测试代码目录是src/test/java。因此,在编写测试代码前,先创建该目录。JUnit是Java世界中事实上的单元测试标准。要使用JUnit,首先需要为Hello World项目添加一个JUnit依赖,添加如下代码于项目的POM中。

    ......
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.7</version> <scope>test</scope> </dependency> </dependencies>
    ......

配置了测试依赖,接着就可以编写测试类。在src/test/java目录下创建文件com.juvenxu.mvnbook.helloworld,将文件目录结构表示包结构,依次创建文件夹。并在该文件下创建HelloWorldTest.java,输入下面内容。

package com.juvenxu.mvnbook.helloworld;

import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class HelloWorldTest{
	
	@Test
	public void testSayHello(){
		HelloWorld helloworld = new HelloWorld();  //准备测试类及数据
		String result = helloworld.sayHello();    //执行要测试的行为
		assertEquals("Hello Maven", result);     //检查测试结果
	}
}

调用Maven命令执行测试 mvn clean test

3.4 打包和运行

将项目进行编译和测试之后,下一个重要的步骤就是打包(package)。Maven的默认打包类型是jar。简单的执行命令mvn clean package进行打包。

至此,我们得到了项目的输入,如果有需要的话,就可以复制这个jar文件到其他项目的classpath中从而使用HelloWorld类。但是,如何才能让其他的Maven项目直接引用这个jar呢?还需要一个安装的步骤,执行mvn clean install

在打包之后,又执行了安装任务install。从输出可以看到该任务将项目输出的jar安装到了Maven本地仓库,可以打开相应的文件夹查看到Hello World项目的pom和jar。之前讲述JUnit的POM及jar的下载的时候,我们说只有构建下载到本地仓库后,才能由所有Maven项目使用,这里是同样的道理,只有将Hello World的构件安装到本地仓库之后,其他Maven项目才能使用它。

3.5 使用Archetype生成项目骨架

Hello World项目中有些Maven的约定:在项目的根目录中放置pom.xml,在src/main/java目录中放置项目的主代码,在src/test/java中放置项目的测试代码。我们称这些基本的目录结构和pom.xml文件内容称为项目骨架,当第一次创建项目骨架的时候, 你还会饶有兴致的去体会这些默认约定背后的思想,第二次,第三次,你也许还会满意自己的熟练程度,但第四次、第五次做同样的事情,你可能就会恼火了。为此Maven提供了Archetype帮助我们快速勾勒项目骨架。新建一个文件夹作为项目的根目录,在根目录中运行mvn archetype:generate命令,就会出现很多可用的archetype供选择,输入对应的archetype编号后回车,紧接着Maven会提示输入创建项目的groupId、artifactId、version以及包名package。

3.6 使用IDE创建Maven项目

在集成了m2eclipse的IDE中创建Maven项目,非常的简便。

首先File>>New>>Other>>Maven Project ,点击Next>>Next>>选择archetype>>Next。输入相应的GroupId、ArtfactId、Version、Package>>Finish

【END】

posted @ 2018-02-27 17:03  flyingweb  阅读(230)  评论(0编辑  收藏  举报