Maven是用Java语言编写的。他管理的东西统统以面向对象的形式进行设计,最终他把一个项目看成一个对象,而这个对象叫做POM(project object model),即项目对象模型
Maven的作用
Maven的作用我们可以分成三类:
(1)项目构建:提供标准的,跨平台的自动化构建项目的方式
(2)依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突等问题
(3)统一开发结构:提供标准的,统一的项目开发结构,如下图所示
各目录存放资源类型说明:
src/main/java:项目java源码
src/main/resources:项目的相关配置文件(比如mybatis配置,xml映射配置,自定义配置文件等)
src/main/webapp:web资源(比如html,css,js等)
src/test/java:测试代码
src/test/resources:测试相关配置文件
src/pom.xml:项目pom文件
下载
官方下载地址:Maven – Download Apache Maven
maven是一个绿色软件,解压即安装,非常容易,
我们找到今日课程资料中的安装程序
,将里面的apache-maven-3.6.1-bin.zip
直接解压到D盘根目录下即可
解压完成后我们可以查看一下maven自己的一个目录结构如下
各目录结构说明:
bin:可执行程序目录,
boot:maven自身的启动加载器
conf:maven配置文件的存放目录
lib:maven运行所需库的存放目录
maven的运行需要java的环境,需要我们配置JAVA_HOME
环境变量,这个相信大家已经存在了
下面在去配置MAVEN_HOME
的环境变量
1:我的电脑
-------->属性
--------->高级系统设置
---------->新建系统变量MAVEN_HOME
,
系统变量值就是maven软件的根目录,我们刚刚已经将maven解压到D盘了,因此变量值就如图中所示
2:环境变量配置好之后需要测试环境配置结果,我们需要在DOS命令窗口下输入以下命令查看输出
mvn -v
Maven基础概念
仓库:用于存储资源,主要是各种jar包
仓库配置
开发者要在自己电脑上做开发,首先要做的就是配置本地仓库
默认情况下maven本地仓库的位置在哪儿呢?
我们可以选择在全局进行配置,在maven的配置文件conf/settings.xml
中可以找到它的说明
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
也就是在系统盘当前用户目录下的.m2/repository
,比如我当前的系统用户是zs
,则默认的本地仓库仓库位置在C:\Users\zs\.m2\repository
Maven项目搭建
手动搭建maven项目
我们先使用手动的方式来创建maven项目
(1)在D盘下创建目录mvnproject
并进入该目录,作为我们的操作目录
(2)创建我们的maven项目,创建一个目录project-java
作为我们的项目文件夹,并进入到该目录
(3)创建java代码(源代码)所在目录,即创建src/main/java
(4)创建配置文件所在目录,即创建src/main/resources
(5)创建测试源代码所在目录,即创建src/test/java
(6)创建测试存放配置文件存放目录,即src/test/resources
(7)在src/main/java
中创建一个包(注意在windos文件夹下就是创建目录)com/itheima
,在该目录下创建Demo.java
文件,作为演示所需java程序,内容如下
package com.itheima;
public class Demo{
public String say(String name){
System.out.println("hello "+name);
return "hello "+name;
}
}
(8)在src/test/java
中创建一个测试包(目录)com/itheima
,在该包下创建测试程序DemoTest.java
package com.itheima;
import org.junit.*;
public class DemoTest{
@Test
public void testSay(){
Demo d = new Demo();
String ret = d.say("maven");
Assert.assertEquals("hello maven",ret);
}
}
(9)在project-java/src
下创建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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.itheima</groupId>
<artifactId>project-java</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
</project>
通过前面的操作,我们已经搭建好了maven的项目结构,下面要通过maven来构建我们的项目
maven的构建命令以mvn
开头,后面添加功能参数,可以一次性执行多个命令,用空格分离
mvn compile
:编译
mvn clean
:清理
mvn test
:测试
mvn package
:打包
mvn install
:安装到本地仓库
下面我们来进行操作:
(1)在项目project-java
所在的DOS命令窗口下执行mvn compile
进行源码编译,当然首次执行需要先下载相关插件
编辑结果如下:
编译完成后在项目project-java
下多了一个目录target
,在这个目录下就存放的是maven编译好的一些东西
我们可以进入到target
目录查看
其中产生的test-classes
就是测试代码的字节码文件,surefire-reports
是它产生的测试报告
(4)使用mvn package
命令进行打包,如下
在生成的target
目录中可以看到打包的结果
当然,如果仔细看DOS窗口输出的我们会发现,mvn package
命令的时候maven会把前面两个命令mvn compile,mvn test
都执行一遍
(5)使用mvn install
命令进行安装,将项目打好的包存入本地仓库
此时我们可以去本地仓库中查找,如何查找?这个很重要
maven是按照groupId/artifactId/version
的结构在本地仓库进行存储
前面我们是通过手动的方式创建的maven项目,相对来说比较的麻烦,maven本身也是这样觉得的,因此maven本身就给我们提供了相关的插件来帮助我们快速构建项目,当然这是一些命令:
IDEA工具搭建maven项目
(1)在IDEA中配置Maven
(2)创建maven工程
(3)填写本项目的坐标
(4)查看各目录颜色标记是否正确
(5)IDEA右侧有一个maven管理界面,可点开查看
(6)在项目的pom.xml文件中添加项目资源依赖
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
(7)创建源代码:com.itheima.Demo
package com.itheima;
/**
* Created by 传智播客*黑马程序员.
*/
public class Demo{
public String say(String name){
System.out.println("hello "+name);
return "hello "+name;
}
}
(8)创建测试代码:com.itheima.DemoTest
package com.itheima;
import org.junit.Assert;
import org.junit.Test;
/**
* Created by 传智播客*黑马程序员.
*/
public class DemoTest{
@Test
public void testSay(){
Demo d = new Demo();
String ret = d.say("maven");
Assert.assertEquals("hello maven",ret);
}
}
然后可以进行测试运行
运行的时候可以编辑运行模板:
然后点击运行: