Maven详解

Maven详解

Maven是Apache基金会下一个跨平台的项目管理工具,服务于Java项目的创建、项目信息管理和依赖管理

作用

  1. 创建项目
  2. 引入依赖jar文件
  3. 打包发布项目

Maven仓库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VEytDQHE-1618907512599)(C:\Users\郭念念\AppData\Roaming\Typora\typora-user-images\image-20210316102500749.png)]

  • 本地仓库:开发人员个人计算机上的Maven仓库
  • 远程仓库:网络上的仓库
    • 中央仓库:Maven官方提供的仓库大全
    • 私服:局域网中搭建的Maven仓库,为公司内的开发人员公用
      • 其他公共库:一些知名公司将收集的依赖构建而成的仓库

Maven在Windows上的安装和配置

搭建本地环境

1.下载Maven软件包

链接:https://pan.baidu.com/s/1rkmSVHeftD8A64PPZsszeg 
提取码:pxqt

2.搭建Maven环境

  1. apache-maven-3.5.0.rar 解压至 D: 盘根目录
  2. 在系统环境变量中添加变量 M2_HOME=D:\apache-maven-3.5.0,在 path 变量中添加 %M2_HOME%\bin
  3. 打开终端,输入指令 mvn -version,如果出现如下信息则表示 Maven 部署成功
>mvn -version
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T03:39:06+08:00)
Maven home: D:\apache-maven-3.5.0\bin\..
Java version: 1.8.0_201, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_201\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

搭建WEB项目

1.创建 WEB 项目

  1. 点击 Create New Project 进行项目创建
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zmb6QL7m-1618907512603)(https://www.yaconit.com/md/java/maven/resources/156416000423673.jpg)]
  2. 选择 Maven
  3. SDK 选择 1.7 以上版本
  4. 勾选 Create from archetype,使用 Maven 模板进行项目创建
  5. 选择 maven-archetype-webapp 模板
  6. 点击 Next 进入下一步
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LGogd9Yk-1618907512608)(https://www.yaconit.com/md/java/maven/resources/156416003488301.jpg)]
  7. 填写项目的 GroupId
  8. 填写项目的 ArtifactId
  9. 点击 Next 进入下一步
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R83lFDRp-1618907512610)(https://www.yaconit.com/md/java/maven/resources/156416004333737.jpg)]
  10. 选择本地 Maven 环境
  11. 点击 Next 进入下一步
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VmApNphR-1618907512613)(https://www.yaconit.com/md/java/maven/resources/156416005289732.jpg)]
  12. 填写项目名称,尽量与 ArtifactId 保持一致
  13. 点击 Next 进入下一步
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dUK4TIDL-1618907512615)(https://www.yaconit.com/md/java/maven/resources/156416006135817.jpg)]
  14. 如果是首次使用 Maven,需要远程下载 JAR 文件,并且需要构建项目,所以,此步非常耗时,请耐性等待
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fvTR1ybF-1618907512616)(https://www.yaconit.com/md/java/maven/resources/156416006845411.jpg)]
  15. 当出现以下界面时,则表示项目构建成功
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZzVxahQb-1618907512618)(https://www.yaconit.com/md/java/maven/resources/156416092992515.jpg)]
  16. 创建目录 /src/main/java,并将该目录设置为源码目录,操作步骤:右键java目录=>Mark Directory as=>Sources Root
  17. 创建目录 /src/main/resources,并将该目录设置为资源目录,操作步骤:右键resources目录=>Mark Directory as=>Resources Root

2.部署 WEB 项目

  1. 点击工具条中的 Add Configuration… 进行部署配置
  2. 点击 + 号
  3. 选择 Tomcat Server,使用 Tomcat 作为我们的项目的运行服务器
  4. 选择 Local 进行本地服务器配置
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XNJPPvQ6-1618907512619)(https://www.yaconit.com/md/java/maven/resources/156416240758819.jpg)]
  5. 给当前的配置去一个名称,建议与项目名一致
  6. 选择本地的 Tomcat 目录
  7. 点击 Deployment 进行项目运行环境配置
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lXYTzHhd-1618907512621)(https://www.yaconit.com/md/java/maven/resources/156416241657643.jpg)]
  8. 点击 + 号
  9. 选择 Artifact…
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lvy9qlQ7-1618907512623)(https://www.yaconit.com/md/java/maven/resources/156416242230297.jpg)]
  10. 选择 war exploaded,启动服务后,项目会被打成 war 包,并且会被加压展开,方便我们看到运行时的项目目录细节
  11. 点击 OK
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nehe7IS2-1618907512624)(https://www.yaconit.com/md/java/maven/resources/156416243390736.jpg)]
  12. 点击 OK
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZxYwDvzI-1618907512626)(https://www.yaconit.com/md/java/maven/resources/156416244034435.jpg)]
  13. 点击 三角或虫子 进行启动项目,三角为非调试模式启动,虫子为调试模式启动,启动成功后,会自动打开页面,如果页面中出现 Hello World! 的内容,则表示项目部署成功
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WyOdXOZs-1618907512627)(https://www.yaconit.com/md/java/maven/resources/156416244863092.jpg)]

Maven在Linux上的安装和配置

环境要求

  • Windows或CentOS 6.5
  • JDK 7及以上版本

1.下载Maven

链接:https://pan.baidu.com/s/1rkmSVHeftD8A64PPZsszeg 
提取码:pxqt

将下载的文件上传到/usr/local目录下

2.解压tar文件安装

  1. 在/usr/local目录下创建Maven文件夹

    cd /usr/local
    mkdir maven
    
  2. 解压tar文件

    tar -zxvf apache-maven-3.6.1-bin.tar.gz -C /user/local/maven
    
  3. 配置环境变量

    vim /etc/profile
    

    在打开的文件中添加如下内容

    export MAVEN_HOME=/user/local/maven/apche-maven-3.6.1
    export PATH=${MAVEN_HOME}/bin:$PATH
    

    保存退出vim后,还须使新增的环境变量生效

    source /etc/profile
    
  4. 验证Maven是否安装成功

    mvn -version
    

Pom文件详解

对依赖进行管理

标签说明
projectPOM文件的顶级元素
modelVersionPOM模型版本,描述这个POM文件是遵循哪个POM版本
groupId项目组织的唯一标识,通常由域名倒写,如com.company,对应Java包的结构
artifactId项目唯一标识,对应项目名称
versionartifact(生成物)的版本,如1.0.0-SNAPSHOT、1.0.0-RELEASE,1.0.0表示版本号,SNAPSHOT表示快照版,RELEASE表示发行版 groupId、artifactId、version唯一确定一个artifact
name项目的展现名,在Maven生成的文档中使用
url项目主页的URL,在Maven生成的文档中使用
description项目的描述,在Maven生成的文档中使用
packaging项目的打包方式,一般为 jar 或者 war
parent指定父依赖,类似Java中的继承,当前项目可继承父依赖中配置的依赖和属性
需要指定父依赖的groupId、artifactId、version和relativePath
dependencies定义此项目的依赖关系集,在子节点dependency中添加具体的依赖
dependencydependencies的子节点,配置具体的依赖,需要指定具体依赖的groupId、artifactId、version,以及一些扩展配置 scope:compile、provided、runtime、test、system optional:false / true exclusions + exclusion:屏蔽对指定groupId+artifactId的传递依赖
properties定义一些常量,可在pom文件的其他地方引用
build构建选项,描述如何编译和打包项目,具体工作通过plugin完成:maven-clean-plugin、maven-resources-plugin、maven-compiler-plugin、maven-surefire-plugin、maven-war-plugin 或 maven-jar-plugin、maven-install-plugin、maven-deploy-plugin

Maven常用操作

  • clean:清除项目编译后的文件
  • validate:验证工程是否正确,所有需要的资源是否可用。可以验证pom.xml文件的正确性
  • compile:编译项目
  • test:执行项目中的测试用例
  • package:将项目打包
  • verify:运行任何检查,验证包是否有效且达到质量标准
  • install:将项目打包进本地仓库
  • site:生成项目的网页形式的文档
  • deploy:将项目打包发布到远程仓库

Nexus私服

强大的Maven仓库管理器,简化了内部仓库的维护和外部仓库的访问。不需要数据库它使用文件系统加Lucene来组织数据

下载安装

安装环境准备

  • Centos 6.4 64 位
  • JDK 1.8
  • nexus-latest-bundle.tar.gz

下载 Nexus2

链接:https://pan.baidu.com/s/1CUhqquS_8rQMeHwr1ztJtQ 
提取码:fngu

安装配置

  1. 通过 FTP 工具将 nexus-2.14.12-02-bundle.tar.gz 上传至服务器 /usr/local/nexus2.14 目录中
  2. 进入 /usr/local/nexus2.14 目录,然后执行指令 tar -zxvf 2.14.12-02-bundle.tar.gz 进行解压
  3. nexus 默认端口号为 8081,可以在 /usr/local/nexus2.14/nexus-2.14.12-02/conf/nexus.properties 中更改端口号

开放端口

  1. 修改文件 /etc/sysconfig/iptables 进行 8081 端口的开放
  2. 执行指令 service iptables restart 重启防火墙

启动

  1. 将文件 /usr/local/nexus2.14/nexus-2.14.12-02/bin/nexus 中的内容#RUN_AS_USER= 更改为 RUN_AS_USER=root
  2. 执行指令 /usr/local/nexus2.14/nexus-2.14.12-02/bin/nexus start进行启动

访问
访问网址 http://192.168.44.128:8081/nexus 进行访问 Nexus

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jgoV3zPy-1618907512629)(resources/155470108754965.jpg)]

登陆 Nexus

  1. 点击右上角的 login in
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zndu8xCI-1618907512630)(resources/155470108754965.jpg)]
  2. 输入用户名和密码,默认的用户名为admin,密码为admin123
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0lr7mJq2-1618907512632)(resources/155470113326604.jpg)]

索引文件配置

在线配置

  1. 点击左侧的 Repositories
  2. 选择右侧的 Central 中心库
  3. 选择下方的 Configuration
  4. Download Remote Indexes 设置为 True
  5. 点击下面的 Save 进行配置保存
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xBZAMn1t-1618907512633)(resources/155470399250680.jpg)]
  6. 右键 Central 中心库
  7. 点击 Repair Index 进行索引下载
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dO2lY3fi-1618907512635)(resources/155470419181960.jpg)]

由于是远程服务器下载,所以过程会非常慢,不建议使用在线方式下载索引文件,推荐使用离线方式

离线配置

下载 Nexus 索引文件及依赖包

链接:https://pan.baidu.com/s/1nl9LMYZW6cDPQZxP3oq0YA 
提取码:dq3o

安装索引文件

  1. 将下载好的索引文件和依赖包拷贝到服务器 /usr/local/nexus2.14/index 目录中
  2. 进入 /usr/local/nexus2.14/index 目录中,执行指令 java -jar indexer-cli-5.1.0.jar -u nexus-maven-repositoryory-index.gz -d indexernexus-maven-repository-index.gz 进行解压
  3. 执行指令 /usr/local/nexus2.14/nexus-2.14.12-02/bin/nexus stop 停止 Nexus 服务
  4. 清空目录 /usr/local/nexus2.14/sonatype-work/nexus/indexer/central-ctx 下的所有内容
  5. /usr/local/nexus2.14/index/indexer 下的所有内容拷贝到 /usr/local/nexus2.14/sonatype-work/nexus/indexer/central-ctx
  6. 打开 Nexus 控制台的 Browse Index,然后点击刷新
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6R6jR1ps-1618907512637)(resources/155471108880746.jpg)]

创建仓库

  1. 点击 Log in 登录
  2. 输入用户名:admin,密码:admin123
  3. 点击 Log In 登录
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0ACCaS9k-1618907512638)(resources/156533576129333.jpg)]
  4. 点击 Repositories 进入仓库列表
  5. 点击 Add…
  6. 选择 Proxy Repository 创建代理仓库
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qGyiXihW-1618907512639)(resources/156533578418659.jpg)]
  7. 输入 仓库ID仓库名
  8. 输入代理仓库的 仓库地址
  9. 点击 Save 保存仓库
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yxX8RG6M-1618907512641)(resources/156533579767401.jpg)]

手动上传JAR文件

  1. 选择 3rd party
  2. 选择 Artifact Upload
  3. 选择 GAV Parameters
  4. 填写要上传JAR文件的 坐标信息版本号,并选择 文件类型
  5. 点击 Select Artifact(s) to Upload…,选择要上传的 JAR 文件
  6. 点击 Add Artifact
  7. 点击 **Upload Artifact(s)**进行上传
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kmBYo1CS-1618907512642)(resources/156534124888280.jpg)]

自动发布JAR文件

Maven配置

<!-- settings.xml -->
<servers>
    <server>
        <id>releases</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
    <server>
        <id>snapshots</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
</servers>

配置pom文件

<!-- pom.xml -->
<distributionManagement>
    <!-- 发布版本 -->
    <repository>
        <id>releases</id>
        <url>http://192.168.1.157:8081/nexus/content/repositories/releases/</url>
    </repository>
    <!-- 快照版本 -->
    <snapshotRepository>
        <id>snapshots</id>
        <url>http://192.168.1.157:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

从私服拉取JAR文件

Maven配置

<!-- settings.xml -->
<mirrors>
 <mirror>
    <id>public</id>
    <mirrorOf>*</mirrorOf>
    <name>public</name>
    <url>http://192.168.1.157:8081/nexus/content/groups/public/</url>
 </mirror>
</mirrors>

方式一:局部配置

<!-- pom.xml -->
<repositories>
    <repository>
        <id>public</id>
        <name>public</name>
        <url>http://192.168.1.157:8081/nexus/content/groups/public/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

方式二:全局配置

<!-- settings.xml -->
<profiles>
    <profile>
        <id>public</id>
        <repositories>
            <repository>
                <id>public</id>
                <name>public</name>
                <url>http://192.168.1.157:8081/nexus/content/groups/public/</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </repository>
        </repositories>
    </profile>
</profiles>

<activeProfiles>
    <activeProfile>public</activeProfile>
</activeProfiles>

Nexus仓库

Nexus的预定一仓库的类型(type),策略(Policy),格式(Format)均不同

仓库介绍

仓库类型

Hosted Repository:本地仓库,通常会部署自己的构件到这一类型的仓库

Proxy Repository:代理仓库,它们被用来代理远程的公共仓库

Virtual Repository:虚拟仓库

Repository Group:仓库组,用来合并多个hosted/proxy仓库,仓库组用来方便开发人员进行仓库设置,仓库组可以自由组合其他的仓库为一组

仓库格式

maven2:

maven1:

仓库策略

Release:发布版本,即稳定版本

Snapshot:资源快照,版本相对不稳定

预定义仓库

3rd party:存放第三方构件,一些无法从公共仓库获得的构件

Apache Snapchats:使用代理Apache Maven仓库快照版本的构件仓库

central:用来代理Maven中央仓库中发布版本构件的仓库

Release:存放稳定版本的构件

Public Repository:仓库组

用来代理远程的公共仓库

Virtual Repository:虚拟仓库

Repository Group:仓库组,用来合并多个hosted/proxy仓库,仓库组用来方便开发人员进行仓库设置,仓库组可以自由组合其他的仓库为一组

仓库格式

maven2:

maven1:

仓库策略

Release:发布版本,即稳定版本

Snapshot:资源快照,版本相对不稳定

预定义仓库

3rd party:存放第三方构件,一些无法从公共仓库获得的构件

Apache Snapchats:使用代理Apache Maven仓库快照版本的构件仓库

central:用来代理Maven中央仓库中发布版本构件的仓库

Release:存放稳定版本的构件

Public Repository:仓库组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Ginns

你的打赏鼓励就是我创作的最大动

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

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

打赏作者

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

抵扣说明:

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

余额充值