一、配置核心程序
1、Maven官网
maven.apache.org
2、下载、解压到本地
(无中文、无空格的路径):
需要着重关注的Maven核心配置文件是:conf/settings.xml
3、指定本地仓库
本地仓库的默认值是:用户home目录/.m2/repository ,由于本地仓库默认目录在Windows系统下指的一般是C盘(系统盘),所以我们最好将本地仓库放在其他盘符下,具体配置方式如下:
(1)打开conf/settings.xml
(2)找到localRespository一行
首先我们看到这一段被注释掉了,Default:后面的是默认的仓库位置,我们将最后一行从注释中复制出来,然后指定到我们想要的位置(注意也要无中文无空格):
4、配置阿里云提供的镜像仓库
找到mirrors
将原本的mirror注释掉,加入以下这段(注意不要删掉mirrors):
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
5.配置Maven工程的基础JDK版本
默认配置的JDK版本是1.5,而我们熟知的JDK版本应该是1.8,所以我们修改默认的配置,配置成1.8版本的JDK。
找到profiles,在当中加入以下这段:
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
二、配置环境变量
1、检查JAVA版本
先检查自己的java版本对不对,cmd中输入:
java -version
确认是1.8版本
2、配置MAVEN_HOME
3、配置PATH
4、检验配置环境
在CMD中输入:
mvn -v
注意不是maven -v
三、Maven中的坐标
四、实验一
(1)创建目录作为后续操作的工作空间
E:\maven-workspace\workspace20230930
(2)在工作空间中打开cmd
(3)运行命令生成Maven工程
mvn指令结构
运行该命令生成Maven工程:
mvn archetype:generate
回车后,会先下载很多东西,耐心等待即可。
到这里,会让你选择要应用的filter类型,默认为7,我们这里默认即可,直接回车:
然后会让你定义groupId,这里我随便写一个: com.wolf.maven
然后是定义artifactId,这里我写的是: pro01-maven-java
然后是定义版本号,有一个默认值1.0-SNAPSHOT,我们直接默认即可。
然后是包名,我们直接默认:com.wolf.maven
到这里,直接回车表示确认,输入N回车表示重新定义以上信息。我们直接回车,工程创建完毕。
(4)调整
打开pom.xml
我们可以看到Maven创建的工程默认依赖的junit版本是3.8.1,是一个比较旧的版本,我们可以更新成较新版本4.12
然后去 \src\main\java\com\wolf\maven和\src\test\java\com\wolf\maven把默认的App.java和AppTest.java删掉:
pom.xml是Maven工程的核心文件,后续任务都是基于这个文件。
五、实验二:在maven中编写java代码
(1)编写主体程序
在以下目录编写主题程序(即,被测试的程序,也就是项目中主要被使用的程序)
新建文件起名Calculator.java
编写一个简单的java程序,注意包名要跟自己的一致:
package com.wolf.maven;
public class Calculator{
public int sum(int i,int j){
return i + j;
}
}
(2)编写测试程序
在以下目录编写测试程序
新建文件起名CalculatorTest.java,写入一个简单的测试程序,注意包名一致:
package com.wolf.maven;
import org.junit.Test;
import com.wolf.maven.Calculator;
// 静态导入的效果是将Assert类中的静态资源导入当前类
// 这样一来,在当前类中就可以直接使用Assert类中的静态资源,不需要写类名
import static org.junit.Assert.*;
public class CalculatorTest{
@Test
public void testSum(){
// 1.创建Calculator对象
Calculator calculator = new Calculator();
// 2.调用Calculator对象方法,获取到程序运行的结果
int actualResult = calculator.sum(5,3);
// 3.声明一个变量,表示程序运行期待的结果
int expectedResult = 8;
// 4.使用断言来判断实际结果和期待结果是否一致
// 如果一致,测试通过,不会抛出异常
// 如果不一致,抛出异常,测试失败
assertEquals(expectedResult,actualResult);
}
}
六、实验三:执行Maven的构建命令
(1)要求
运行Maven中的构建相关命令时,一定要进入(所要操作工程的)pom.xml所在的目录中,如果没有在pom.xml所在的目录中,执行Maven的构建命令则会报错。
(2)清理操作
目前还没编译过,所以暂时不用清理
mvn clean
效果:清除target目录
(3)编译操作
主程序编译:
mvn compile
执行后,会先下载一些compile必要的文件, 然后显示BUILD SUCCESS
主程序编译结果保存到的目录:
target/classes
编译结果:
测试程序编译:
mvn test-compile
也是会先下载一些必要文件,然后进行编译:
测试程序编译结果保存到的目录:
target/test-classes
编译结果:
(4)测试操作
mvn test
也是会先下载一些必要的文件,然后进行测试:
测试的报告存放的目录:
target/surefire-reports
存放了一些测试报告,感兴趣可以看一下:
由于之前的测试文件没有加输出流,所以Result没有显示在控制台,我们可以加一下:
mvn clean、mvn compile、mvn test-compile、mvn test
到这里可以证明确实测试成功了。
(5)打包操作
mvn package
打包的结果:jar包(之前设置好的),存放的目录:target
也是会先下载一些必要的文件,然后进行打包。
jar包的名字默认是artifactID+version
(6)安装操作
mvn install
安装的效果是,将本地构建过程中产生的jar包存放到本地的Maven仓库,这个jar包在Maven仓库中存放的路径是根据它的坐标生成的,它的坐标信息可以从pom.xml中查询到:
存放到的目录是:
maven-repo\com\wolf\maven\pro01-maven-java\1.0-SNAPSHOT\
七、挖坑
中间有一些实验感觉暂时用不到,先跳过了,以后有需求再来学习。
八、Maven IDEA
1.创建父工程
修改IDEA默认使用的Maven为自己下载的maven而不是IDEA自带的
File-Settings-Build,Execution,Deploymen-Build Tools-Maven
指定settings.xml的位置
2.创建模块工程
可以很清楚地看到Maven目录结构:
3.测试
在pom.xml中加入junit的dependency
在src/main/java中新建com.wolf.maven.Hello.java
随便写一点东西(用IDEA写代码比在记事本写舒服多了):
package com.wolf.maven;
public class Hello {
public void showMessage(){
System.out.println("Hello Idea Maven!");
}
}
在src/test/java/中新建HelloTest.java
这里注意,每次改变pom.xml后,Maven需要重新载入,可以点击右上角的标识或者Ctrl+Shift+O
在HelloTest.java中写入测试文件:
package com.wolf.maven;
import org.junit.Test;
public class HelloTest {
@Test
public void testHello(){
Hello hello = new Hello();
hello.showMessage();
}
}
4.三种方式执行Maven命令
(1)右侧选项卡点开-选择模块-Lifecycle中有各种常用的Maven命令
(2)工具栏中有一个Execute Maven Goal
可以在里面一次性输入很多命令
也可以这么写:
可以跳过测试环节等等。
(3)命令行
这种方法就不多说了,跟正常在目录中打开cmd是一样的。
至此,Maven的基本使用方法已经学完了,想要学习更进阶的知识可以参考尚硅谷的教学视频51P及以后的部分。
补充
如果是Linux,安装过程有变化的部分:
环境变量:
sudo vi /etc/profile
末尾添加如下内容:
export M2_HOME=/路径/apache-maven-xx.xx.xx
export PATH=$PATH:$M2_HOME/bin
然后:
source /etc/profile
其余步骤类似。