目录
2.3.2. 在项目HelloFriend 根目录建立pom.xml
2.3.4. 创建HelloFriendTest.java文件
1.Maven概述
1.1Maven的概念
Maven 是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖 管理和项目信息管理。
1.2什么是依赖管理
对第三方依赖包的管理,可以连接互联网下载项目所需第三方jar包。 对自己开发的模块的管理,可以像引用第三方依赖包一样引用自己项目的依赖包。
1.2.1传统项目

1.2.2Maven项目
1.3项目构建
项目构建:是一个从编写源代码到编译、测试、运行、打包、部署的过程。
1.3.1传统项目和maven项目构建的两种方式
传统项目: 打开Idea编写源代码和配置文件,对源代码进行编译,可以使用Junit进行单元测试,把项目打成war包,部署到Tomcat服务器中运行。
maven 项目: maven 将项目构建过程进行标准化,每个阶段都可以使用一个命令来完成。 清理 --> 编译 --> 测试 --> 报告 --> 打包 --> 部署
好处: 可以通过命令完成项目构建。(测试:使用mvn tomcat:run的命令来发布运行项目) maven 对每个构建阶段进行规范,有利于大型团队协作开发。

1.4 Maven的应用场景
maven 的应用场景,开发人员只要按着maven标准的目录结构进行开发即可,然后提 交代码。在测试服务器上拉取Java源码,然后可以使用maven的自动化项目构建完成项 目的清理、编译、测试、打包和安装部署等。

1.5 使用Maven的好处
拥有约定,知道你的代码在哪里,放到哪里去
拥有一个生命周期,例如执行 mvn install 就可以自动执行编译,测试, 打包等构建过程
只需要定义一个pom.xml,然后把源码放到默认的目录,Maven 帮你处理其 他事情
拥有依赖管理,仓库管理
1.6 Maven模型

2.Maven初识
2.1 Maven安装
2.1.1 安装准备
安装jdk1.8以上版本
下载Maven:
网址Download Apache Maven – Maven
华为云镜像下载网址Index of apache-local/maven/maven-3
下载Maven3.6版本
下载压缩包后解压到无中文路径的合适位置
2.1.2Maven安装目录

bin:含有mvn运行的脚本
boot:含有plexus-classworlds 类加载器框架
conf:含有settings.xml 配置文件
lib:含有Maven运行时所需要的java类库
LICENSE.txt, NOTICE.txt, README.txt 针对 Maven 版本,第三方软件等简要介绍
2.1.3配置环境变量
设置MAVEN_HOME环境变量,把maven的解压后的路径添加为变量值

设置Path环境变量,把 %MAVEN_HOME%\bin 添加到Path的变量值末尾,与前面的内容 用 ; 隔开,如图:

验证配置是否完成

2.2创建第一个Maven项目
2.2.1如图创建结构

2.2.2在项目根目录建立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>4.0.0</modelVersion>
<groupId>cn.tx.maven</groupId>
<artifactId>Hello</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Hello</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
2.2.3. 创建 Hello.java 文件
在src/main/java/cn/tx/maven目录下新建文件Hello.java
package cn.tx.maven;
public class Hello {
public String sayHello(String name){
return "Hello "+name+"!";
}
}
2.2.4. 创建 HelloTest.java 文件
在/src/test/java/cn/tx/maven 目录下新建测试文件HelloTest.java
package cn.tx.maven;
import org.junit.Test;
import static junit.framework.Assert.*;
public class HelloTest {
@Test
public void testHello(){
Hello hello = new Hello();
String results = hello.sayHello("maven");
assertEquals("Hello maven!",results);
}
}
2.2.5. 进行 maven 的项目操作
1. 打开cmd命令行,进入Hello项目根目录执行 mvn compile命令,查看根目 录变化
2. cmd 中继续录入mvn clean命令,然后再次查看根目录变化
3. cmd 中录入 mvn clean compile命令, 查看根目录变化
4. cmd 中录入 mvn clean test命令,查看根目录变化
5. cmd 中录入 mvn clean package命令,查看根目录变化
6. cmd 中录入 mvn clean install 查看仓库会把项目安装到仓库里
6是前五步的综合,执行后,本地仓库中会生成其对应的jar包(本地仓库配置见2.4)

2.3. Maven 的第二个项目
2.3.1. 按照约定创建Maven项目目录

2.3.2. 在项目HelloFriend 根目录建立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>4.0.0</modelVersion>
<groupId>cn.tx.maven</groupId>
<artifactId>HelloFriend</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>cn.tx.maven</groupId>
<artifactId>Hello</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
2.3.3. 创建 HelloFriend.java 文件
在src/main/java/cn/tx/maven目录下新建文件HelloFriend.java
package cn.tx.maven;
import cn.tx.maven.Hello;
public class HelloFriend {
public String sayHelloToFriend(String name){
Hello hello = new Hello();
String str = hello.sayHello(name)+" I am "+this.getMyName();
System.out.println(str);
return str;
}
public String getMyName(){
return "John";
}
}
2.3.4. 创建HelloFriendTest.java文件
在/src/test/java/cn/tx/maven目录下新建测试文件 HelloFriendTest.java
package cn.tx.maven;
import static junit.framework.Assert.assertEquals;
import org.junit.Test;
import cn.tx.maven.Hello;
public class HelloFriendTest {
@Test
public void tesHelloFriend(){
HelloFriend helloFriend = new HelloFriend();
String results = helloFriend.sayHelloToFriend("zhangsan");
assertEquals("Hello zhangsan! I am John",results);
}
}
2.3.5. 测试打包HelloFriend项目
运行HelloFriendTest文件,输出结果:

即使项目HelloFriend没有创建Hello类,但是通过添加依赖的方式,也就是将项目Hello封装成jar包导入到了HelloFriend当中,也让HelloFriend导入了Hello类
2.4仓库配置
1. 全局本地仓库(所有操作系统用户均影响)
%MAVEN_HOME%\conf\settings.xml 文件,修改该文件会影响所有使用该 Maven 的用户的本地仓库,例如:

2. 用户本地仓库(仅影响使用该配置文件的用户或程序)
该文件可以在任意目录,例如:

3. 修改配置文件设置Maven本地仓库(以全局设置为例)
编辑D:\TOOLS\maven\apache-maven-3.5.4\conf\settings.xml文件 找到如下位置:

修改为:

保存退出即可
以上配置表示所有使用该Maven的程序或用户,如未单独配置,则默认加载以上目录的本地库文件;
2.5. IDEA 整合Maven项目
2.5.1. IDEA 的 Maven 全局配置


以上设置完成表示在本idea上,所有项目如未对Maven的配置进行单独配置,则默认均使 用该Maven版本和本地库设置;
2973

被折叠的 条评论
为什么被折叠?



