首页 > 其他分享 >[Maven] 笔记

[Maven] 笔记

时间:2023-04-08 10:47:14浏览次数:40  
标签:仓库 jar 笔记 Maven 本地 远程 mvn

Maven

管理和构建 Java 项目的工具,同类的还有 Gradle、Ant 等

提供了什么:

  • 标准化的项目结构
  • 标准化的构建流程
    • 编译 > 测试 > 打包 > 发布
  • 依赖管理机制

标准项目结构

img

更快捷的编译,打包

依赖管理机制

直接在 pom.xml 中添加依赖坐标后会自动将 jar 包和插件部署在 lib 中

不再需要曾经的(下载,导入lib,添加到工作环境)繁琐步骤

img


Maven 内部控制机制

img

通过在 pom 文件中编辑项目所用的外部库,让 maven 去仓库找到 jar 包导入项目

仓库有:本地仓库、apache 中央仓库、远程仓库(类似私服的概念)

当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的 jar 包:

  • 如果有,则在项目直接引用;
  • 如果没有,则去中央仓库中下载对应的 jar 包到本地仓库。

如果搭建了远程仓库,则访问顺序为:

本地仓库>远程仓库>中央仓库

发现远程仓库没有,会从中央仓库下载到远程仓库之后,再下载到本地仓库


配置和命令

在 /conf/setting.xml 中

本地仓库

<localRepository>D:\Work\Environment\maven-repository</localRepository>

配置远程仓库

 <!-- 阿里云仓库 -->
<mirror>
    <id>alimaven</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>

常见命令

命令 功能
mvn compile 编译生成再target中
mvn clean 清除编译文件
mvn package 打包(jar,war)
mvn test 运行测试
mvn install 把生成的包放入本地仓库

三套生命周期

img

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

比如 compile > test > package > install 这一套中

执行 mvn install 会自动执行 compile > test > package


Maven 坐标

  • groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如: com.itheima)
  • artifactld:定义当前Maven项目名称(通常是模块名称,例如order-service、goods-service)
  • version:定义当前项目版本号
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.13</version>
</dependency>

依赖作用范围

<!-- 编译时有效 -->
<scope>compile</scope>
<!-- 测试环境有效 -->
<scope>test</scope>
<!-- 测试和运行环境有效 -->
<scope>runtime</scope>
<!-- 编译和测试有效,运行无效,打包时不会包含 -->
<scope>provided</scope>
<!-- 编译和测试有效,运行无效 -->
<scope>system</scope>

常见的 servlet 作用范围,设置为 provided 避免和 Tomcat 发生冲突

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
</dependency>

标签:仓库,jar,笔记,Maven,本地,远程,mvn
From: https://www.cnblogs.com/libayu/p/17298086.html

相关文章

  • 随笔记事
    1)mysql的delete语句一定要有from,没有会报错    deletefromsys_rolewhereID=@roleId  2)layui的默认按钮去掉的方法,必须使用赋值为空值的方式,直接备注掉,或者不赋值还是会有默认的三个按钮    ,defaultToolbar:[]3)c#直接用htmlTable的方式转Excel......
  • fastjson学习笔记
    入门详解参考:https://blog.csdn.net/cold___play/article/details/124525519将拿到的json字符串数据,用GsonFormat工具来生成java类参考:https://www.cnblogs.com/1024zy/p/6370305.html......
  • Tomcat的Maven插件
    <build><plugins><plugin><!--tomcat插件--><groupId>ch.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</art......
  • 图神经网络 基础、前沿与应用 第零章 术语 & 符号 阅读笔记
    图的基本概念中心度:用来衡量图中节点的重要性。中心度的基本假设是:如果其他重要的节点也连接到该节点,则认为该节点是重要的。常见的中心度度量包括度数中心度、特征向量中心度、间隔性中心度和接近性中心度。邻域:一个节点的邻域一般是指与该节点相近的其他节点的集合(距离为1)。......
  • 图神经网络 基础、前沿与应用 第一章 表征学习 阅读笔记
    导读表征学习的目标是从数据中提取足够但最少的信息。传统上,该目标可以通过先验知识以及基于数据和任务的领域专业知识来实现,这也被称为特征工程。特征工程是利用人类的现有知识的一种方式,旨在从数据中提取并获得用于机器学习任务的判别信息(比如从音频中通过傅立叶变换提取出mel......
  • 图神经网络 基础、前沿与应用 第三章 图神经网络 阅读笔记
    导读传统的深度学习技术已经在图像等欧式数据或文本和信号等序列数据上取得巨大的成功。但也有很多领域数据需要用复杂的图结构来表达,这些图结构的数据可以编码复杂的点对关系,以学习更丰富的信息表征;另一面,原始数据(图像或连续文本)的结构和语义信息中纳入特定领域知识可以捕捉数......
  • 图神经网络 基础、前沿与应用 第二章 图表征学习 阅读笔记
    摘要图表征学习的目的是将图中的节点嵌入低维的表征并有效地保留图的结构信息。导读许多复杂的系统具有图的形式,如社交网络、生物网络和信息网络。为了有效地处理图数据,第一个关键的挑战是找到有效的图数据表征方法,也就是如何简洁地表征图,以便在时间和空间上有效地进行高级的......
  • #yyds干货盘点#学习笔记(1)Linux和Windows上实现端口映射
    一、Windows下实现端口映射1.查询端口映射情况netshinterfaceportproxyshowv4tov42.查询某一个IP的所有端口映射情况netshinterfaceportproxyshowv4tov4|find"[IP]"例:netshinterfaceportproxyshowv4tov4|find"192.168.1.1"3.增加一个端口映射netshinterfa......
  • C++笔记(一)
    C++笔记(一)反复考量之后,还是决定将C++作为我的第二语言以及以后的主力开发语言。目录C++笔记(一)语法基础基本数据类型变量、常量作用域基本运算补码字节序基本结构顺序结构分支结构循环结构指针内存空间动态分配内存二级指针空指针野指针函数指针常见容器类型数组语法基础基本数......
  • 删边最短路学习笔记
    删边最短路前言删边最短路是一种科技,用于解决一类问题:给定非负权图\(G=(V,E)\)。设\(n=|V|\),保证\(1\)可达\(n\)。设\(\Delta(e)\)为图\(G'=(V,E\setminus\{e\})\)上\(1\rightsquigarrown\)的最短路,若\(G'\)上\(1\)不可达\(n\)则为\(+\infty\)......