Maven入门指南 :Maven学习教程

Myth丶恋晨 2022-02-18 11:09 614阅读 0赞

链接:https://blog.csdn.net/lmhlmh_/article/details/81176627
链接:https://blog.csdn.net/a331685690/article/details/80552735
链接:https://blog.csdn.net/li_zean/article/details/79280541

Maven学习教程

    1. Maven 快速入门及简单使用
    • 1.1 前置知识
      • 1.1.1 maven作用
      • 1.1.2 maven概念
    • 1.2 下载安装配置
      • 1.2.1 下载
      • 1.2.2 配置
      • 1.2.3 使用(Maven项目的文件/目录结构相关约定)
    1. Maven 常用命令,手动创建第一个 Maven 项目
    • 2.1 根据 Maven 的约定,我们在D盘根目录手动创建如下目录及文件结构:
    • 2.2 打开pom.xml文件,添加如下内容:
    • 2.3 在 src/main/java/com/lt/maven 下新建 Hello.java 类文件,代码如下:
    • 2.4 在 src/test/java/com/lt/maven 下新建 HelloTest.java 测试类文件,代码如下:
    • 2.5 编译项目源代码。打开 cmd 窗口,进入 mavenDemo2 目录,执行 “mvn compile” 命令:
    • 2.6 清理项目编译,执行 “mvn clean” 命令,将删除 target 目录:
    • 2.7 运行测试,执行 “mvn test” 命令:
    • 2.8 打包项目,执行 “mvn clean package” 组合命令:
    • 2.9 执行 “mvn install” 命令:
    • 2.10 创建项目:在目标位置执行 “`mvn archetype:generate”`
    1. 坐标和依赖
    1. 仓库
    1. 使用Nexus搭建Maven私服
    1. 将项目发布到私服
    1. Maven的生命周期和插件

开发环境

  • Eclipse 2019-3
  • JDK 1.8
  • Maven 3.2.1

1. Maven 快速入门及简单使用

1.1 前置知识

1.1.1 maven作用

  1. 管理jia包

    • 增加第三方jar
    • jar包之间的依赖关系(自动关联下载所有依赖的jar,并且不会冲突)
  2. 将项目拆分成若干个模块

1.1.2 maven概念

  1. 是一个基于java平台的自动化构建工具
  2. 历史顺序:make => ant => maven => gradle

清理: 删除编译的结果,为重新编译做准备
编译: java => class
测试: 针对项目中的关键点进行测试,可用项目中的测试代码 去测试开发代码;
报告: 将测试的结果进行显示
打包: 将项目中包含的多个文件 压缩成一个文件,用于安装或部署。
安装: 将打成的包 放到 本地仓库, 供其他项目使用
部署: 将打成的包 放到 服务器上准备运行

自动化构建工具maven: 将原材料(java,js, css, html, 图片) => 产品(可发布项目)

  • eclipse中部署的web项目可以运行
  • 将eclipse中的项目,复制到tomcat/webapps中不能运行
  • 项目可以在webapps中直接运行

为何:tomcat中无法直接运行 Eclipse中复制过来的项目?

eclipse中的项目,在部署时 会生成一个对应的部署项目(在wtpwebapps中),
区别在于:部署项目 没有源码文件src(java), 只有编译后的class文件和jsp文件
因为两者目录结构不一致,因此tomcat中无法直接运行
Eclipse中复制过来的项目 如果要tomcat运行一个项目,则该项目必须严格遵循tomcat的目录结构

eclipse中的项目,要在tomcat中运行,就需要部署:

  1. 通过eclipse中Add and Remove按钮进行部署
  2. 将web项目打成一个war包,然后将该war包复制到tomcat/webapps中,即可执行
    注意:java项目达成jar包,web项目达成war包

1.2 下载安装配置

1.2.1 下载

官网下载:http://maven.apache.org/download.cgi
在这里插入图片描述

1.2.2 配置

在这里插入图片描述

  1. %JAVA_HOME%(JDK) 基本都已经配置过了
  2. MAVEN_HOME
    在这里插入图片描述
  3. PATH
    在这里插入图片描述
  4. 查看是否配置成功:
    在这里插入图片描述
  5. 配置本地仓库 maven目录/conf/setting
    settings.xml,实际项目开发中,Maven的大多数配置都是在该文件中进行设置。
    %MAVEN_HOME%/conf目录下的settings.xml,该配置文件针对系统所有用户:
    在这里插入图片描述

    • 默认本地仓库:Default: ${user.home}/.m2/repository
      系统当前用户目录下.m2下的settings.xml,针对当前用户。默认没有,可自行复制一份:在这里插入图片描述
    • 修改本地仓库:<localRepository>C:/E/soft/maven/repository</localRepository>

1.2.3 使用(Maven项目的文件/目录结构相关约定)

原则:约定优于配置
在这里插入图片描述

  • src/main/java - 存放项目.java文件;
  • src/main/resources - 存放项目资源文件;
  • src/test/java - 存放测试类.java文件;
  • src/test/resources - 存放测试资源文件;
  • target - 项目输出目录;
  • pom.xml - Maven核心文件(Project Object Model);

2. Maven 常用命令,手动创建第一个 Maven 项目

链接:http://www.cnblogs.com/luotaoyeah/p/3764982.html

常见命令:(第一次执行命令时,因为需要下载执行该命令的基础环境,所以会从中央仓库下载该环境到本地仓库)
编译: (maven基础组建,基础jar)

  • mvn compile —只编译main目录中的java文件
  • mvn test 测试
  • mvn package 打成jar/war
  • mvn install 将开发的模块 放入本地仓库,供其它模块使用 (放入的位置,是通过gav决定)
  • mvn clean 删除target目录(删除编译文件目录)

运行mvn命令,必须在pom.xml文件所在目录

2.1 根据 Maven 的约定,我们在D盘根目录手动创建如下目录及文件结构:

在这里插入图片描述

2.2 打开pom.xml文件,添加如下内容:

  1. <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">
  2. <modelVersion>4.0.0</modelVersion>
  3. <groupId>com.lt</groupId>
  4. <artifactId>mavenDemo2</artifactId>
  5. <packaging>jar</packaging>
  6. <version>0.0.1-SNAPSHOT</version>
  7. <name>mavenDemo2</name>
  8. <url>http://maven.apache.org</url>
  9. <dependencies>
  10. <dependency>
  11. <groupId>junit</groupId>
  12. <artifactId>junit</artifactId>
  13. <version>4.11</version>
  14. </dependency>
  15. </dependencies>
  16. <build>
  17. <finalName>mavenDemo2</finalName>
  18. </build>
  19. <!-- 设置编码 -->
  20. <properties>
  21. <project.build.sourceEncoding>
  22. UTF-8
  23. </project.build.sourceEncoding>
  24. </properties>
  25. </project>

pom.xml文件简单解释(groupId,artifactId,version三个一起描述了项目的唯一标识):

  • groupId - 组名,主项目标识;
  • artifactId - 工程名,子项目(模块)标识;
  • packaging - 打包方式;
  • version - 版本;
  • name - 项目描述名;

2.3 在 src/main/java/com/lt/maven 下新建 Hello.java 类文件,代码如下:

  1. package com.lt.maven;
  2. public class Hello {
  3. public String sayHello(String name){
  4. return "Hello "+name+"!";
  5. }
  6. }

2.4 在 src/test/java/com/lt/maven 下新建 HelloTest.java 测试类文件,代码如下:

  1. package com.lt.maven;
  2. import org.junit.Test;
  3. import static junit.framework.Assert.*;
  4. public class HelloTest {
  5. @Test
  6. public void testHello(){
  7. Hello hello = new Hello();
  8. String results = hello.sayHello("coder");
  9. assertEquals("Hello coder!",results);
  10. }
  11. }

2.5 编译项目源代码。打开 cmd 窗口,进入 mavenDemo2 目录,执行 “mvn compile” 命令:

在这里插入图片描述
Maven 的各种功能(包括 maven 的命令)都是通过插件的形式来实现的,使用 maven 构建项目,需要联网到 maven 中央仓库下载所需插件包,并保存到 maven 仓库,仓库默认位置为:${user.home}/.m2/repository,以后用到就不需要再重新下载。

2.6 清理项目编译,执行 “mvn clean” 命令,将删除 target 目录:

在这里插入图片描述

2.7 运行测试,执行 “mvn test” 命令:

在这里插入图片描述
运行成功,将生成如下文件:

在这里插入图片描述

2.8 打包项目,执行 “mvn clean package” 组合命令:

在这里插入图片描述
Maven 自动帮我们完成项目的编译、测试、打包。

运行成功,将生成如下文件:
在这里插入图片描述

2.9 执行 “mvn install” 命令:

在这里插入图片描述
看到的效果跟mvn clean package命令一样,但是我们打开仓库位置${user.home}/.m2/repository/,或者自己修改后的仓库位置,可以看到项目被打包发布到了 maven 的仓库,以后其他项目需要依赖到这个项目,就可以通过在 pom.xml 文件中添加依赖来引用:
在这里插入图片描述

  • maven-metadata-local.xml - 记录了项目元数据,包括 groupId,artifactId,version。
  • mavenDemo2-0.0.1-SNAPSHOT.pom - 记录了 mavenDemo2 项目信息以及它的依赖,maven 通过这种方式解决传递依赖,即只要指明了对 mavenDemo2 的依赖,maven 会根据这个文件自动导入 mavenDemo2 对 junit 的依赖。

2.10 创建项目:在目标位置执行 “mvn archetype:generate”

Maven 的目录结构遵循一定的约定,所以我们可以通过下面的命令来自动创建这样的目录结构。执行 “mvn archetype:generate” 命令:
在这里插入图片描述
选择项目骨架类型,直接回车,选择默认的 maven-archetype-quickstart ;选择版本,直接回车,默认选择第 6 项:
在这里插入图片描述
接下来,录入项目相关信息,groupId,artifactId,version(默认1.0-SNAPSHOT),package(默认跟 groupId 一样:com.lt),接着确认:
在这里插入图片描述
在这里插入图片描述

3. 坐标和依赖

4. 仓库

5. 使用Nexus搭建Maven私服

6. 将项目发布到私服

7. Maven的生命周期和插件

发表评论

表情:
评论列表 (有 0 条评论,614人围观)

还没有评论,来说两句吧...

相关阅读