even

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1、概念

maven是一个项目管理构建工具,它基于项目对象模型(POM)的概念, 通过一小段描述信息来管理项目的构建,报告和文档,(官网:https://maven.apache.org/)  它的主要功能有:

  • 提供了一套标准化的项目结构 
  • 提供了一套标准化的构建流程(编译,测试,打包,发布...)
  • 提供了一套依赖管理机制

 

 2、maven的仓库

仓库分类:

  1. 本地仓库:自己计算机上的一个目录
  2. 中央仓库:同Maven团队维护的全球唯一的仓库(地址:https://repo1.maven.org/maven2/)
  3. 远程仓库(私服):一般由公司团队搭建的私有仓库

仓库的查找顺序是: 本地仓库 -> 远程仓库 -> 中央仓库

3、maven的安装配置

a、下载maven

官方下载链接:https://maven.apache.org/download.cgi

界面如下

 注意:Binary是可执行版本,已经编译好可以直接使用,Source是源代码版本,需要自己编译成可执行软件才可使用。(如果需要下载历史版本,在Previous Releases中的archives中下载)

 b、安装

把zip包解压到指定的自定义目录下

配置环境变量

 编辑环境变量

 验证安装成功

 c、配置

配置本地仓库, 修改conf/settings.xml中的<localRespository>为其指定一个目录(默认在c盘下的.m2目录下)

 配置远程仓库即镜像, 修改conf/settings.xml中的<mirrors>标签,为其添加如下标签

<mirror>
   <id>aliyunmaven</id>
   <mirrorOf>*</mirrorOf>
   <name>aliyun maven</name>
   <url>https://maven.aliyun.com/repository/public</url>
</mirror>

d、配置ide(在idea的settings中也需要进行配置)

4、maven的基本使用

maven的常用命令

mvn compile // 编译, 会生成编译完成的target目录
mvn clean   // 清理,会删除已编译的target目录
mvn test    // 测试, 执行测试代码
mvn package  //打包, 会进行打包操作,并且生成相应的target目录,以及jar包
mvn install  //安装 

 创建maven项目

 

 导入当前已有的maven项目

 注意:如果没有右侧栏界面,那么就需要调用出对应的界面,如下图

 

 为了更好的使用maven,可以安装maven helpers

 5、依赖管理

 查询jar包的依赖管理库 https://mvnrepository.com/

 配置示例如下

<?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>site.ieven</groupId>
    <artifactId>demo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
    </properties>

    <!--需要导入的jar包的坐标,示例以下是导入mysql的jar包-->
    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.16</version>
        </dependency>
    </dependencies>

</project>

注意:在导入坐标后,如果需要其生效,那么需要点击 重载刷新的按钮,也可以通过配置如下的配置,自动安装机制

 配置了如上的配置,那么当pom保存时就会自动加载

快速导包的快捷键: Alt + insert 再点击 dependency可进行查询本地所有包,并且快速导入模板

 6、依赖的作用范围

 

compile

不声明scope元素的情况下的默认值;compile表示被依赖包需要参与当前项目的编译,包括后续的测试,运行周期也参与其中,是一个比较强的依赖;打包的时候通常需要包含进去。

provided

provided 类型的scope只会在项目的编译测试阶段起作用;可以认为在目标容器中已经提供了这个依赖,无需在提供,但是在编写代码或者编译时可能会用到这个依赖;依赖不会被打入到项目jar包中

runtime

runtimecompile比较相似,区别在于runtime 跳过了编译阶段,打包的时候通常需要包含进去。

test

在一般的编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用,不会被打包到项目jar包中,同时如果项目A依赖于项目B,项目B中的test作用域下的依赖不会被继承。

system
表示使用本地系统路径下的jar包,需要和一个systemPath一起使用

默认: compile

posted on 2023-01-08 00:04  even_blogs  阅读(31)  评论(0编辑  收藏  举报