1、体验Java项目目录结构,手动搭建Maven项目
1.1 让Java开发者烦恼的问题
开发Java项目,难免需要添加很多的jar包,很多时候,当我们编译通过了,但是在运行的时候却出现了“ClassNotFoundException”,可能缺少或是导错了jar包,寻找合适的jar包绝对是让开发者头疼的一件事。
再说每个Java项目的目录都没有一个统一的标准,配置文件到处都是,单元测试代码放在哪里也没有一个统一的规范。
使用Maven能解决这些问题,Maven要做的是两件事情:
- 统一管理jar包
- 统一开发规范和工具
Maven的安装和配置链接Maven在Windows环境下的安装和配置
2、手动创建Maven项目
在D盘下手动创建D:\tool\code目录,在code目录下创建maventest目录,maventest目录相当于IDE创建的工程目录,接下来开始创建Maven的目录规范。在maventest目录下创建src目录和pom.xml文件。
接下来手动创建以下两个目录:
- src/main/java
src/test/java
解释下Maven目录规范:
- 源代码目录
- main目录是项目的主要代码
- test目录是测试相关的代码
- java目录存放java代码
- 编译输出后的信息放在target目录下,该目录和src目录在同一级别下
- pom.xml是Maven项目的配置文件,用于描述整个maven项目,对于该文件的描述下边会有说明。
接下来在src/main/java/目录下创建com/daoli/maven/HelloMaven.java文件,com.daoli.maven项目包名,HelloMaven.java是一个java文件。
HelloMaven.java:
package com.daoli.maven;
public class HelloMaven{
public String sayHello(){
return "Hello Maven!";
}
}
pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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是POM的版本号-->
<modelVersion>4.0.0</modelVersion>
<!--groupId、artifactId、version分别代表Maven项目的组织名,
构件名和版本号,它们三个合起来就是Maven坐标,
根据这个坐标就可以在Maven仓库中对应唯一的Maven构件(即jar包)-->
<groupId>com.daoli</groupId>
<artifactId>hello-maven</artifactId>
<version>1.0-SNAPSHOT</version>
<!--Maven项目的依赖关系-->
<dependencies>
<!--一个dependency对应一个maven项目,即一个依赖包-->
<!--该包对应的是junit测试包-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
</project>
打开命令行,跳转至maventest目录下:
输入:mvn compile,点击回车
出现BUILD SUCCESS即为编译成功。
编译之后你会发现maventest目录下多了一个target目录,该目录存放各种编译后的信息。
在src/test/java/目录下创建com/daoli/maven/HelloMavenTest.java文件,com.daoli.maven测试包名,HelloMavenTest.java是一个java文件。
HelloMavenTest.java:
package com.daoli.maven;
import org.junit.*;
import org.junit.Assert.*;
public class HelloMavenTest{
@Test
public void testMaven(){
Assert.assertEquals("Hello Maven!", new HelloMaven().sayHello());
}
}
打开命令行,跳转至maventest目录下:
输入:mvn test,点击回车
出现BUILD SUCCESS即为测试运行成功。
相应的测试信息会在target目录下保存。
3、Maven常用命令解释
- compile 编译Java源码
- test 运行测试代码
- clean 清理自动生成的文件,即target目录
- package 打包项目,生成jar包。在target目录可查看
- install 将生成的jar包安装到本地仓库
- deploy 将生成的jar包部署到远程仓库
- validate 验证Maven描述文件是否有效
举例使用,命令行切换到Maven工程目录,输入命令:
mvn clean ,点击回车,可观察到target目录被删除。
参考《从零开始写JavaWeb框架》黄勇著