Maven学习笔记

Maven学习笔记

一、Maven

1.1 Maven简介

1.1.1 传统项目导入jar包

  1. 下载jar包
  2. 将下载的jar包拷贝到项目中(WEB-INF/lib)
  3. 选择jar文件-> 右键-> Add as Livrary

传统方式存在问题:步骤多、不同的项目中需要相同jar包时,需要分别存储、在不同环境下可能因为jar文件版本不同导致项目无法运行

1.1.2 传统项目生命周期管理

IDE提供了一键构建项目的功能,但我们无法干预具体项目生命周期过程(清理缓存、校验、编译、测试、打包、安装、部署),不同的IDE项目结构不同,导致移植性差

1.1.3 Maven简介

Maven是一个基于项目对象模型(POM)用于进行项目的依赖管理、生命周期管理的 工具软件

核心功能

  1. 项目的依赖管理
  2. 项目生命周期管理
  3. 聚合工程

1.2 Maven安装与配置

1.2.1 Maven下载

网址:https://maven.apache.org/download.cgi

1.2.2 Maven安装

开箱即用,无需安装

  • 解压压缩包
  • 解压后的目录结构
    bin 存放指令文件
    boot 包含类加载框架jar
    conf 包含maven核心配置文件setting.xml
    lib 包含maven运行所需的jar文件
  • 配置环境变量
    path中添加解压后的bin目录

1.2.3 Maven配置

maven的conf目录中的 setting.xml,是maven的核心配置文件

仓库
在这里插入图片描述
  1. 本地仓库配置

本地仓库中会存储项目依赖的文件
在setting.xml中添加如下标签,可配置本地仓库路径,如果不配置默认存储在C:\Users\username\.m2\repository

<localRepository>D:/local/repo</localRepository>
  1. 远程仓库及其配置

中央仓库

Maven中央仓库是由maven社区提供的仓库,无需配置,maven中内置了中央仓库的地址
中央仓库地址:http://repo.maven.apache.org/maven2/

公共仓库

除中央仓库外,还有其他远程仓库。比如aliyun仓库(http://maven.aliyun.com/nexus/content/groups/public/
中央仓库在国外,一般选择国内的公共仓库代替,下面的示例为在setting.xml中配置阿里云仓库

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

私服

公司可配置一个不对外开放的仓库 可以用Nexus搭建

  1. JDK配置

限定maven项目默认的jdk版本

 <profiles>
 <profile>
 </profile>
   </profiles>
  <activeProfiles>
  <activeProfile>alwaysActiveProfile</activeProfile>
</activeProfiles>

1.3 Maven的项目结构

1.3.1 Maven的项目结构

projectName(项目名称)
--src
    --main(存放项目源文件)
        --java
        --resources
    --text(存放项目单元测试代码)
--pom.xml

1.3.2 pom.xml

POM(Project Object Model)maven可以更具pom文件的配置对此项目进行依赖管理

<?xml version='1.0' encoding='utf-8'?>
<!--project中添加xml配置语法规范-->
<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</modelVersion>
    <!--指定项目的标识 G 组织标识 A项目标识 V版本标识-->
    <groupId>com.jdsm</groupId>
    <artifact>personPro</artifact>
    <version>1.0.0</version>
    
    <!--配置当前项目的依赖
        在https://mvnrepository.com/中
        找到依赖坐标添加到denpendencies中即可
        示例中为gson的依赖
        可以通过scope指定当前依赖的使用范围,一般只用测试,或不写(不写标识贯穿整个生命周期)
            test标识只在项目测试阶段引入当前依赖(编译、测试)
            runtime标识只在项目运行阶段引入当前依赖(运行、测试运行)
            provided在 (编译、测试、运行)
            compile 在(编译、测试、运行、打包)
    -->
    <dependencies>
    	<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
			<version>2.9.0</version>
			<scope>test</scope>
		</dependency>
    </dependencies>
</project>

1.4 依赖管理

  • 在pom.xml中配置依赖
  • maven读取项目中的pom.xml
  • 检查本地仓库中是否有所依赖的jar,有则直接引入项目中
  • 如果本地仓库没有项目所需依赖,则连接远程仓库进行下载(需要有网络)

1.5 项目生命周期管理

  • 清理缓冲 mvn clean
  • 检查 mvn check
  • 编译 mvn compile
  • 测试 mvn test
  • 打包 mvn package
  • 安装 将所到的包安装到本地maven目录 mvn install
  • 部署 将项目生产的包发布到外部服务器仓库,以供其他开发人员共享 mvn deploy

1.6 IDEA使用Maven

1.6.1 IDEA关联Maven

File->Settings 中关联当前项目Maven,File->OthersSettings 是为以后所有项目关联Maven
在这里插入图片描述
在这里插入图片描述
说明:IDEA本身集成了Maven,考虑到IDEA和Maven版本的兼容性,idea不建议配置比默认版本更新的版本,建议使用Idea自带的Maven

1.6.2 创建Maven项目

Java项目
在这里插入图片描述在这里插入图片描述在这里插入图片描述
Web项目
创建web项目同创建java项目,在java项目的基础上增加WEB-INF->web.xml在这里插入图片描述
在pom.xml中设置打包方式为war
在这里插入图片描述
配置web组件
在这里插入图片描述在这里插入图片描述在这里插入图片描述
部署web项目
在这里插入图片描述在这里插入图片描述

1.7 私服

企业内部搭建的Maven仓库

  • 开发者需要依赖直接从私服下载
  • 私服可以实现企业内部依赖的共享,当企业开发了一个通用插件(jar),可以发布到私服,其他开发者就可以共享此插件

1.7.1 私服架构

有无私服对比
在这里插入图片描述在这里插入图片描述

1.7.2 Nexus 下载安装运行

Maven 仓库管理软件可以搭建私服,如:Apache archiva,Artifactory,Sonatype Nexnus。这里使用Sonatype Nexnus搭建

  • 官网地址:https://www.sonatype.com/
  • 下载地址:https://www.sonatype.com/products/nexus-repository?topnav=true
  • 下载nexus-2.x-bundle.zip 解压即可
nexus安装目录
在这里插入图片描述
点击进入nexus-2.*\bin 目录,用管理员身份打开cmd执行命
1.nexus install 2.nexus uninstall 3.nexus statrt 4.nexus stop

1.7.3 Nexus 登录

登录私服管理器地址: http://localhost:8081/nexus
账号:admin
密码:admin123

1.7.4 私服仓库列表

仓库类型描述
group包含多个仓库,通过group地址可以从包含的多个仓库中找构建
host私服服务器 本地的仓库
proxy代理仓库 如aliyun仓库
仓库名描述
Releases存放项目的稳定发布版本
Snapshots临时发布版本
3rd party存放中央仓库没有,可以上传私服的该库中

1.7.5 私服仓库组的配置

为达到当私服仓库没有时去其他仓库回去依赖jar目的,所以需要配置私服仓库组
+将私服Releases配置第一位
+将私服Snapshots配置第二位
+将公共仓库Central配置第三位
在这里插入图片描述

1.7.6 Maven配置私服

在maven中配置私服,便可以从私服上获取jar包及其依赖

setting.xml中配置如下
在这里插入图片描述

1.7.7 激活私服配置

在settings.xml的activeProfiles中激活对应的profile->id 中的私服ID
在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酷啦啦诶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值