首页 > 其他分享 >Maven基础

Maven基础

时间:2023-01-16 11:24:35浏览次数:58  
标签:依赖 项目 仓库 基础 jar Maven 坐标

Maven基础

一、概述:

Maven是用于管理和构建Java项目的工具,它的主要功能有:

​ 提供了一套标准化的项目结构

​ 提供了一套标准化的构建流程(编译,测试,打包,发布......)

​ 提供了一套依赖管理机制

1、标准化的项目结构:

​ 不同的IDE之间,项目结构不一样,不通用

Maven提供了一套标准化的项目结构,所有的IDE使用Maven构建的项目结构完全一样,所有IDE创建的Maven项目可以通用

2、标准化的构建流程

​ 编译 ---> 测试 ---> 打包 ---> 发布

Maven提供了一套简答的命令来完成项目的构建

3、依赖管理

​ 其实就是管理你项目所依赖的第三方资源(jar包、插件)

​ 以前:1、下载jar包;2、赋值jar包到项目;3、将jar包加入工作环境

​ Maven使用标准的坐标配置来管理各种依赖

​ 只需要简单的配置就可以完成依赖管理

二、Maven 简介

Apache Maven 是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档

官网: http://maven.apache.org/

Maven模型:

项目对象模型:pom.xml

依赖管理模型:仓库

插件

仓库的分类:

​ 本地仓库:自己计算机上的一个目录

​ 中央仓库:由Maven团队维护的全球唯一的仓库

​ 地址:https://repo1.maven.org/maven2/

​ 远程仓库(私服):一般由公司团队搭建的私有仓库

本地仓库 与 中央仓库:本地没有就自动去中央下载到本地,本地有了就不去了

有远程仓库的话:本地 ---> 远程 ---> 中央(在国外,访问较慢且一般为开源jar包)

三、Maven安装

​ 1、解压网盘资源

​ 2、配置环境变量 MAVEN_HOME 为安装路径的bin目录,然后再Path中添加:%MAVEN_HOME%\bin

​ 3、配置本地仓库:修改conf/settings.xml 中的 为一个指定目录

​ 4、配置阿里云私服:修改conf/settings.xml 中的 标签,为其添加如下子标签:

<mirror>
	<id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

四、Maven基本使用

在:src同级目录下 Shift + 鼠标右键

1、Maven 常用命名:

​ complie:编译,并生成target目录

​ clean:清理,target目录

​ test:测试,运行test目录下的代码

​ package:打包,生成target目录并生成jar包 (注意路径中不要出现&符号)

​ install:将jar包安装在本地仓库,其在仓库的目录为mian/java下的第一个包名

2、Maevn 声明周期:

Maevn 构建项目的生命周期描述的是一次构建过程经历了多少事件

Maevn 对项目构建的生命周期划分为3套

​ clean:清理工作

​ default:核心工作,例如编译,测试,打包,安装等

​ site:产生报告,发布站点等

同一生命周期内,执行后面的命令,前面的所有命令会自动执行

例如下列三个:

​ pre-clean clean post-clean

​ complie test package install (可以先删除target目录,再使用install来自己测试一下)

​ pre-site site post-site

五、IDEA配置Maven

1、IDEA 配置 Maven 环境:

​ 1、选择 IDEA中 File ---> Setting

​ 2、搜索 maven

​ 3、设置 IDEA 使用本地安装的 Maven,并修改配置文件路径(一个是maven安装路径,一个是settings.xml路径)

2、Maven 坐标详情:

什么是坐标?

​ Maven 中的坐标是资源的唯一标识

​ 使用坐标来定义项目或引入项目中所需要的依赖

Maven 坐标主要组成

​ groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.itheima)

​ artifactId:定义当前Maven项目名称(通常是模块名称[代表一些功能],例如:order-service、goods-service)

​ version:定义当前项目版本号

<groupId>com.itheima</groupId>
<artifactId>maven-demo</artifactId>
<version>1.0-SNAPSHOT</version>


<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>5.1.46</version>
</dependency>
3、IDEA 创建 Maven 项目:

​ 1、创建模块,选择Maven,点击Next

​ 2、填写模块名称,坐标信息,点击finish,创建完成

​ 3、编写 HelloWorld,并运行

​ 注意当出现报错:不支持发行版本5或者不支持源选项5,请使用6或更高版本时,需要将环境设置为JDK版本,可以去网上搜

4、IDEA导入Maven项目:

​ 1、选择右侧Maven面板,点击 + 号

​ 2、选中对应项目pom.xml文件,双击即可

​ 3、如果右侧没有Maven面板,选择:View ---> Appearance ---> Tool Window Bars

配置Maven - Helper插件

​ 1、选择IDEA中Flie -->Settings

​ 2、选择 Plugins

​ 3、搜索 Maven,选择第一个Maven Helper,点击Install安装,弹出面板中点击Accept

​ 4、重启IDEA

六、依赖管理

使用坐标导入jar包

​ 1、在pom.xml中编写标签

​ 2、在标签中 使用 子标签引入坐标

​ 3、定义坐标的groupId,artifactId, version(坐标由这三个子标签组成)

​ 4、点击刷新按钮,使坐标生效

参考写法:

<dependencies>
	<!-- mysql 坐标 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.32</version>
    </dependency>
</dependencies>

依赖范围

​ 通过设置坐标的依赖范围(scope),可以设置对应jar包的作用范围:编译环境、测试环境、运行环境

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13</version>
    <scope>test</scope>
</dependency>

依赖范围的取值与作用表

依赖范围 编译classpath 测试classpath 运行classpath(war包中看) 例子
complie Y Y Y logback
test - Y - Junit
provided Y Y - serviet-api
runtime - Y Y jdbc-驱动
system Y Y - 存储在本地的jar包
import 引入DependencyManagement

的默认值:compile

注:.war可以用解压应用打开,在WEB-INF下的lib目录中可以看到所依赖的jar包,从而查看依赖范围作用是否在运行用有效

标签:依赖,项目,仓库,基础,jar,Maven,坐标
From: https://www.cnblogs.com/fragmentary/p/17054982.html

相关文章

  • java多线程基础
    java多线程编程课程视频来源:多线程06:初识并发问题_哔哩哔哩_bilibili线程简介进程编写的静态代码文件,经过编译成为可执行的二进制文件,执行后它被加载至内存,被CPU执行。......
  • Matlab笔记--Matlab基础
    Matlab基础数据类型(共有15种数据类型)整数取整函数浮点数(单精度浮点数和双精度浮点数--默认为双精度浮点数)复数数据的显示格式(format确定数据的显示格式):数据格式......
  • 【博学谷学习记录】超强总结,用心分享 | pyspark基础操作
    【博学谷IT技术支持】Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生,2010年开源,2013年成为Apache孵化项目,2014年成为Apache顶级项目。目前,Spark生态系统已经发......
  • 前端的基础知识
    网页的相关概念什么是网页网站:是指在因特网上根据一定规则,使用HTML等制作的用于展示特定内容相关的网页集合。网页:网页通常是HTML格式的文件(是常以.htm或.html为后缀......
  • java基础11 包机制
    包机制知识点包的本质就是文件夹,用来存放文件(写下的各种类);当然,可以大概地比喻成生活中的包包,小提包之类的装东西的容器包的命名规则:就像上面说的那样,要规范快捷键:s......
  • java基础12 文本注释javadoc
    文本注释javadoc文本注释,javadoc:/**接回车可以生成一些注释的文档,直接看代码吧用window命令窗口执行:javadocjava文件,中间可以加一大堆的参数使得中文不乱码​......
  • go 基础结构和基本数据类型
    Go的源文件以 .go 为后缀名存储在计算机中,这些文件名均由小写字母组成,如 scanner.go 。如果文件名由多个部分组成,则使用下划线 _ 对它们进行分隔,如 scanner_test.g......
  • java基础07 基本运算符
    基本运算符基本知识优先级运算符之间具有优先级左结合从左到右进行运算,大多数是这样比如:d=a+b-c,先进行a+b,再进行减c右结合从右到左进行运算,只有三种单目......
  • java基础08 自增自减运算符,初识Math类
    自增自减运算符,初识Math类代码packagecom.zhan.operator;publicclassTest08{publicstaticvoidmain(String[]args){//++、--:自增,要格外注意......
  • java基础09 逻辑运算符、位运算符
    逻辑运算符、位运算符逻辑运算符逻辑运算符:&&与(and)、||或(or)、!非(not)​短路运算:可以提前判定结果的情况下不再继续执行后面的内容位运算符位运算符:&、|、~......