Maven 概述及下载安装

这篇具有很好参考价值的文章主要介绍了Maven 概述及下载安装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、为什么要学习 Maven

我们构建一个项目需要用到很多第三方的类库,就需要引入大量的jar包,并且Jar包之间的关系错综复杂,缺少任何一个Jar包都会导致项目编译失败。Maven 能帮助我们下载及管理依赖。

本地项目代码开发完成后,我们需要本地编译,打包,部署,然后进行测试。代码推送到远端仓库之后,触发钩子函数,集成部署工具同样需要用到Maven来构建项目进行发布。Maven 能帮助我们构建管理。

总结:Maven 不仅是一个依赖管理工具,它还是一个构建管理工具,帮助我们进行依赖管理,项目代码构建(编译,打包,部署)

二、什么是 Maven

Maven是Apache软件基金会组织维护的一款专门为 Java 项目提供构建和依赖管理支持的工具。

1. 构建

构建指的是将原材料(Java源码,配置文件,静态资源等等)转变为产品(一个可以在服务器上运行的项目)的一个过程。

构建过程主要包含以下环节

  • 清理:删除上一次构建的结果
  • 编译:Java 源文件编译成字节码文件
  • 测试:运行写好的测试程序
  • 报告:将测试程序的测试结果生成一个全面的信息
  • 打包:Java 工程打成 jar 包,Web 工程打成 war 包
  • 安装:把一个Maven工程打包成的jar或war包存入Maven仓库
  • 部署:部署jar包就是把一个jar包部署到Nexus私服服务器上,部署war包就是借助相关maven插件(cargo等),将war包部署到Tomcat服务器上

2. 依赖

如果 A 项目里用到了 B 项目的类、接口、配置文件等等,那么我们就可以说 A 依赖 B。

依赖管理中我们要解决的问题有以下几种

  • jar 包的下载:使用 Maven 之后,Maven 会帮我们从远程仓库下载jar包到本地
  • jar 包之间的依赖:通过依赖的传递性自动完成
  • jar 包之间的冲突:通过对依赖的配置进行调整,对某个不需要的版本jar包进行排除

3. Maven 的工作机制

Maven 概述及下载安装

三、Maven 下载和安装

1. 下载

下载地址:https://maven.apache.org/download.cgi

Maven 概述及下载安装

2. 安装

压缩包 apache-maven-3.9.2-bin.zip 下载完之后,直接解压到非中文、没有空格的目录,就可以使用了。

3. 配置本地仓库

本地仓库默认值:~/.m2/repository,如果要修改,就打开 apache-maven-3.8.4\conf\settings.xml,找到 localRepository 标签,修改本地仓库目录

  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ~/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
   
 <localRepository>D:\maven-repository</localRepository>

4. 配置阿里云提供的镜像仓库

Maven 下载 jar包默认访问境外的中央仓库,国内访问境外网站的速度很慢,我们通常改成阿里云提供的镜像仓库,访问国内网站,提高jar包的下载速度。

<mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |-->
	<mirror>
	    <id>nexus-aliyun</id>
	    <mirrorOf>central</mirrorOf>
	    <name>Nexus aliyun</name>
	    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
	</mirror>
</mirrors>

5. 配置 Maven 工程的基础JDK版本

如果按照默认配置运行,Java 工程使用的默认JDK是1.5 , 我们熟悉和常用的是1.8版本。修改配置如下:

<profiles>
	<profile>
		<id>jdk1.8</id>
		<activation>
			<activeByDefault>true</activeByDefault>
			<jdk>1.8</jdk>
		</activation>
		<properties>
			<maven.compiler.source>1.8</maven.compiler.source>
			<maven.compiler.target>1.8</maven.compiler.target>
			<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
		</properties>
	</profile>
</profiles>

6. 配置 Maven 环境变量

我的电脑右键选择属性,找到修改环境变量菜单,进行环境变量配置。

Maven 概述及下载安装
设置环境变量时,可以创建一个叫做”MAVEN_HOME“的系统变量名称,值是maven文件夹路径

Maven 概述及下载安装
在path系统变量中引用MAVEN_HOME变量,指向MAVEN_HOME中的bin目录

Maven 概述及下载安装
wim + r 输入cmd,打开dos窗口 ,输入mvn -v命令,如果出现maven版本号,就表明配置成功文章来源地址https://www.toymoban.com/news/detail-461621.html

到了这里,关于Maven 概述及下载安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vscode为什么下载了汉化插件却不生效?

    1.确保安装了汉化插件 2.在vscode中快捷键 Ctrl+Shift+P ,打开全局命令面板 3.找到 Configure Display Language ,点击进入到选择语言,这里选择中文 4.会弹出框提示重启,Restart重启vscode后就会看到中文界面

    2024年02月12日
    浏览(52)
  • stm32下载代码到单片机上需要调节BOOT为什么模式

    一、BOOT模式选择图解   二、BOOT模式介绍 所谓启动,一般来说就是指下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。 A.   Main Flash memory 是STM32内置的Flash,一般我们使用JTAG或者S

    2023年04月15日
    浏览(40)
  • 为什么要学习算法

    我们每个人可能都会有过的经历: 是不是从学校开始,你就觉得数据结构难学,然后一直没认真学? 工作中,一遇到数据结构这个坑,你又发自本能地迅速避让,因为你觉得自己不懂,所以也不想深究,反正看起来无关大局? 当你想换工作面试,或者研究某个开源项目源码

    2024年02月01日
    浏览(58)
  • Maven 概述及下载安装

    我们构建一个项目需要用到很多第三方的类库,就需要引入大量的jar包,并且Jar包之间的关系错综复杂,缺少任何一个Jar包都会导致项目编译失败。Maven 能帮助我们下载及管理依赖。 本地项目代码开发完成后,我们需要本地编译,打包,部署,然后进行测试。代码推送到远端

    2024年02月06日
    浏览(37)
  • 为什么要学习消息队列

    消息队列作为使用最广泛、生命力最旺盛的中间件,无论技术如何发展,都离不开分布式系统的最基本需求:通信。它涉及的底层技术是非常全面的,比如:高性能通信、海量数据存储、高并发等。并且,消息队列具有功能简洁、结构清晰的特点,入门简单但具有足够的深度

    2024年02月08日
    浏览(50)
  • 为什么要学习C++

    UINX操作系统诞生之初是用汇编语言编写的。 随着UNIX的发展,汇编语言的开发效率成为一个瓶颈。 寻找新的高效开发语言成为UNIX开发者需要解决的问题。 当时BCPL语言成为了当时的选择之一。 Ken Thomposn对BCPL进行简化得到了B语言。 但是B语言不是直接生成机器码,而是生成中

    2024年02月10日
    浏览(46)
  • 《让云落地 云计算服务模式》第一章 [为什么是云计算,为什么是现在] 学习

    “时间会带来标准和最佳实践” 1.云计算的由来 云计算是从中央主机时代,向个人计算机时代诞生带来的分布式主从架构时代,以及企业能够通过覆盖全球的计算机网络联系世界的互联网时代的自然发展。 每一次新的技术革命都会伴随着阻力。早期的试用者和风险承受者会

    2024年04月28日
    浏览(41)
  • 神经网络为什么可以学习

    本资料转载于B站up主:大模型成长之路,仅用于学习和讨论,如有侵权请联系 动画解析神经网络为什么可以学习_哔哩哔哩_bilibilis 1.1 也可以是一层,也可以是多层  2.1 每两个神经元之间有两个参数,我们称之为权重 3.1 4.1 5.1 6.1 7.1 8.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 16.1  17.1 18.1

    2024年02月12日
    浏览(127)
  • ChatGPT为什么使用强化学习

    最近出现很多ChatGPT相关论文,但基本都是讨论其使用场景和伦理问题,至于其原理,ChatGPT在其主页上介绍,它使用来自人类反馈的强化学习训练模型,方法与InstructGPT相同,只在数据收集上有细微的差别。 那么,InstructGPT和ChatGPT为什么使用强化学习呢?先看个示例: 先不论

    2023年04月13日
    浏览(42)
  • 图片链接或pdf链接通过浏览器打开时,有时可以直接预览,有时却是下载,为什么?

    在前端开发中,有时候需要对一些文件链接进行特殊处理,比如对于一些图片链接或者PDF链接,有时我们需要通过浏览器打开进行预览,有时又不希望通过浏览器进行打开,而是希望能够直接下载到本地。但现实效果却往往跟我们相反,我们希望浏览器打开时,他却直接下载

    2024年02月10日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包