Maven 项目同 MyEclipse 或其他工具产生的项目一样,有自己的目录结构和特殊的意义。
比如一般有如下目录。
当然,还有一个 pom.xml 文件,该文件配置 Maven 管理的所有内容。
这里可以按 Maven 的要求,自动创建目录结构,按 Maven 的要求添加项目相关的配置文件,这样确实可以实现,但是很烦琐。已经有人用代码将这些要做的事情全都封装实现了,如同在 MyEclipse 中创建工程的那种图形化导向页面一样(这种效果到使用 MyEclipse+Maven 的时候体现),只要按它的步骤输入信息和命令,完成后自动产生项目架构。
这里简单介绍一下有关的命令和信息。
1)命令。命令很简单,就是创建项目的命令 create。
人们把要调用哪个软件的 create 命令创建项目叫插件(plugin)。创建项目的插件叫 Archetype 插件(archetype-plugin)。
2)信息。和项目相关的信息包括 groupId(组 Id)、artifactId(构件 Id)、packageName(包名)、version(版本)。
其实 packageName 和 version 好理解。程序员写的类,肯定要放在一个标准包下或标准包的子包下,packageName 指标准包;version 是当前代码的版本号。
这里的 groupId 和 artifactId 同部门名称和组名称一样,用来唯一确定一个项目(软件、功能)。有些地方会把这两个描述的信息合起来叫“坐标”。
用命令产生项目的方式有两种。
1)在硬盘上创建一个空的目录,用来存放Maven项目,如E:\temp\demoMaven。
2)打开 CMD 窗口,用 cd 命令,切换到 demoMaven 目录,如图 1 所示。
图 1 Maven项目目录(1)
3)在 CMD 窗口中输入“mvn archetype:generate”,按 Enter 键。
联网初始化一段时间后(一般不少于 5 分钟),会一步步提示输入 groupId、artifactId、version、packageName 等信息。最后创建成功,而且可以在 E:\temp\demoMaven 空目录下发现一个同 artifactId 一样的目录,这就是创建的项目目录。
1)在硬盘上创建一个空的目录,用来存放 Maven 项目,如 E:\temp\demoMaven。
2)打开 CMD 窗口,用 cd 命令,切换到 demoMaven 目录,如图 1 所示。
3)在 CMD 窗口中输入如下命令并按 Enter 键。
注:
Maven 执行命令的时候,会在本地寻找是否有指定版本的 Archetype 插件,如果没有,就需要联网下载。最后显示的正常状态如图 2 所示。
图 2 Maven 创建项目提示
同时,它会在 demoMaven 目录下创建一个新的 HelloWorld 目录。到这里,就可以使用 Archetype 插件创建第一个工程的架构了。
为了完成体验,需要写两个代码:一个是 HelloWorld.java,放在 src\main\java 目录下;另一个是 TestHelloWorld.java,用来体现测试,放在 src\test\java 目录下。下面介绍它们的内容。
HelloWorld.java 代码如下所示:
- package com.mengma.demo.mvn;
- /**
- * 这是为了研究Maven,写的第一个Java代码 功能很简单,输出一个HelloWorld的问候
- *
- * @ author Noble
- * @ version 1.0
- */
- public class HelloWorld {
- /**
- * 输出问候
- * @ param name String,说话人名称
- * @ return String 格式是:xxx say HelloWorld
- **/
- public String say(String name) {
- return name + " say HelloWorld";
- }
- }
TestHelloWorld.java 代码如下所示:
- package com.mengma.demo.mvn;
- import junit.framework.Assert;
- import org.junit.After;
- import org.junit.Before;
- import org.junit.Test;
- public class TestHelloWorld {
- private HelloWorld hello;
- @Before
- public void init() {
- hello = new HelloWorld();
- }
- @Test
- public void testSay() {
- String name = "张三";
- String exp = "张三" + "say HelloWorld";
- String act = hello.say(name);
- Assert.assertEquals(exp, act);
- }
- @After
- public void destory() {
- hello = null;
- }
- }
代码写好了,接下来要通过配置文件让 Maven 管理。这时要用到 pom.xml,即骨架文件。该文件在创建工程时会在工程目录下自动生成 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/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.mengma.demo</groupId>
- <artifactId>HelloWorld</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <packaging>jar</packaging>
- <name>HelloWorld</name>
- <url>http://maven.apache.org</url>
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- </properties>
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.7</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
- </project>
注:
打开 CMD 窗口,操作步骤如下所示:
到现在为止,编码的操作就完成了,包括工程的创建、源代码的编写、单元测试代码的编写、代码的编译、测试案例的运行以及最后的打包。