Maven的详解

news2024/11/15 8:08:35

``        在java中Maven就是一个包管理工具,在没有包管理工具时,我们要做一个java项目,需要第三方依赖包,将别人打包好的Jar包下载到本地,然后手动指定给项目.操作比较麻烦,比如版本控制,有的甚至还有其他包的依赖,属实是繁琐,技术是不断地迭代的,所以就出现了Maven,用了Maven之后,需要什么包,直接在pom.xml中添加xml代码,指定包名 版本等.很方便我们开发人员进行项目的部署以及开发.

<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.16</version>//版本
        </dependency>

Maven默认为从中央 仓库下载Jar包的,中央仓库在国外,所以速度很慢.

我们为什么要学习Maven?

  • Jar包难以寻找
  • Jar包的依赖难以解决
  • Jar包不容易管理
  • 项目编译

 2.Maven 简介
Maven 是 Apache 软件基金会的一个开源项目,是一个优秀的项目构建工具,它
用来帮助开发者管理项目中的 jar,以及 jar 之间的依赖关系、完成项目的编译、
测试、打包和发布等工作。

3.如何找到Jar包的位置?

在我们生活中,高得地图为什么能够准确的找到我们想要找到的位置呢?还有比较准确的位置导航,是不是因为每个位置都有一个属于自己的坐标,我们在输入所要查询的地点其实是默认给了它一个位置坐标,Maven中也是这样的原理,maven 给每个 jar 定义了唯一的标志,这个在 maven 中叫做项目的坐标,通过这个坐标可以找到你需要 用到的任何版本的 jar 包。

<?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>com.example</groupId>  <!--组id(jar包在仓库的地址)-->
    <artifactId>mavenDemo</artifactId><!--构建id (项目名)-->
    <version>1.0.0</version><!--版本号-->
    <name>mavenDemo</name><!--项目名字-->
    <packaging>war</packaging><!--打包类型-->

    <!--属性设置-->
    <properties>
        <!--编译版本-->
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.source>1.8</maven.compiler.source>
        <junit.version>5.6.2</junit.version>
    </properties>

    <!--依赖-->
    <dependencies>
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.16</version>
            <type>jar</type>
        </dependency>

        <dependency>
            <groupId>commons-fileupload</groupId> <!--jar包的组id-->
            <artifactId>commons-fileupload</artifactId><!--构建id(组件名)-->
            <version>1.3.1</version><!--版本号-->
            <type>jar</type><!--包类型  默认是jar-->
            <scope>compile</scope><!--scope 范围 作用域 默认是 compile 打包时就会将jar包打包到项目中的lib目录中-->
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope><!--provided 项目打包时,此jar不会被打包到项目中去,只是本地编译需要-->
        </dependency>

        <dependency>
            <groupId>com.example</groupId>
            <artifactId>myUtil</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

    </dependencies>

    <build>
        <!--配置maven插件-->
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.3.0</version>
            </plugin>
        </plugins>
    </build>
</project>

 基本流程:

1.安装JDk,较好的网络环境

2.下载Maven服务器

3.对Maven环境进行配置  

4.在电脑中创建一个存储从镜像仓库下载Jar包的文件夹,一般我们称为”仓库(repository),在 maven 的服务器解压的文件中找到 conf 文件夹下的settings.xml 文件进行修改,如下图所示:


配置阿里云 maven 镜像仓库,下载速度更快

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

 5.从idea中设置Maven

 

 

 

 6.Pom.xml 配置

maven 仓库官网(http://mvnrepository.com/)

7.Maven命令

1. compile 编译
2. clean
删除 target
3. package 打包​
4. install
把项目 install 到本地仓库
5. test
运行测试代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/12546.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安装nodejs的详细流程保姆级(踩了无数次坑)

node 简述: node的使用已经是前端选手基本的选择,其强大的功能甚至到了要和后端抢活干的地步,同时想要搭建个人的博客用node工具也是非常方便的,作为一名后端选上,刚开始准备下载node的时候是因为想要去搭建个人的博客,但是下载之后,使用npm install命令的时候一直报错,无奈找…

G1D14fraudgitpipenvdf操作APT论文RCE37-40服务器搭建

一、fraud 突然发现电脑上还没有python编译器&#xff0c;xswl&#xff0c;快装一下 &#xff08;一&#xff09;git操作 &#xff08;二&#xff09;git中分支的作用 &#xff08;三&#xff09;虚拟环境 1、pip install后的包一般放在哪里 lib/site-packages下 真的是欸&a…

LiveData

LiveData是一个抽象类&#xff0c;那么我们从简单的MutableLiiveData开始剖析&#xff0c;先看源码 源码太简洁了&#xff0c;就是继承LiveData&#xff0c;然后重写了父类的方法&#xff0c;并且没有多余的操作&#xff0c;都是直接使用父类方法里的逻辑&#xff0c;那我们就根…

安全防护的原则

电力行业 工控安全解决思路保障框架从电力行业对工控安全需求看&#xff0c;电力企业在主要是以合规性建设为主&#xff0c;在 2004 年原电监会 5 号令颁布开始&#xff0c;大部 分的电厂控制系统安全 建设已经按照 5 号令的要求进行了整改&#xff0c;形成“安全分区、网络专…

数电笔记总结(三)(逻辑门电路)

目录逻辑门基础逻辑门电路分立元件基本逻辑门电路TTL集成门电路&#xff08;与非门&#xff09;两种特殊门&#xff08;重点&#xff09;1.集电极开路门&#xff08;OC门&#xff09;2.三态门电路逻辑门基础 逻辑门电路 门电路&#xff1a;具有控制信号通过或不通过能力的电路…

某某桥的检测和加固设计

目录 某某大桥桥梁检测及加固设计报告 1 0 总论 2 0.1 检测目的 2 0.2 桥梁结构混凝土强度检测[1] 2 0.3 结构综合评定指标 4 0.4桥梁承载能力[3] 4 0.5 桥梁结构荷载试验 6 0.6 主要结果与结论 8 1某某大桥简介 11 1.1某某大桥简介 11 1.2 检测仪器与设备 15 2 外观检查与检测…

【跟学C++】C++STL标准模板库——算法整理(上)(Study18)

文章目录1、STL简介2、STL算法分类及常用函数2.1、非变序算法2.1.1 计数算法(2个)2.1.2 搜索算法(7个)2.1.3 比较算法(2个)3、总结 【说明】 大家好&#xff0c;本专栏主要是跟学C内容&#xff0c;自己学习了这位博主【 AI菌】的【C21天养成计划】&#xff0c;讲的十分清晰&am…

每个程序员都要知道的一个网站

在日常开发过程中&#xff0c;你是不是经常回到搜索引擎&#xff0c;搜索某个功能的实现方式&#xff0c;比如&#xff1a;Javascript 数组排序、正则表达式等等。 今天给大家推荐的这个网站&#xff0c;就可以满足大家的需求&#xff0c;它叫&#xff1a;30secondsofcode&…

抽象类与接口

目录 1. 抽象类 1.1 抽象类概念 1. 2&#x1f414;抽象类特性 1.3 抽象类的作用 2. 接口 2.1 接口是什么 2.2 语法规则 2.3 方法的使用 2.4 接口特性 2.5 实现接口 VS 继承类 2.6 抽象类 VS 接口&#xff08;总结&#xff09; 2.6 接口间的继承 &#x1f413; 随着…

漫画脸头像怎么制作?这几种方法可以帮到你

你们会经常更换头像吗&#xff1f;我身边就有一些朋友会这样做&#xff0c;看到喜欢的头像就换&#xff0c;而且他基本上都是找那些漫画脸来当头像。那如果我们把自己的人像制作成漫画脸&#xff0c;就不容易跟别人撞头像了&#xff0c;还显得有个性。 估计有很多小伙伴不知道漫…

NXP BootLoader源码分析并改写SD卡启动

1 官方资料 NXP官方提供了MCUBoot SDK&#xff1a;NXP_Kinetis_Bootloader_2.0.0 package&#xff0c;里面包含了各种型号芯片的的BootLoader。 BootLoader参考手册&#xff1a;doc/Kinetis Bootloader v2.0.0 Reference Manual.pdf上位机程序参考手册&#xff1a;Kinetis Fl…

疯狂小杨哥被王海打假

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 知名打假人王海 发布视频&#xff0c;说疯狂小杨哥三只羊直播间售卖的金正破壁机和绞肉机虚标功率。破壁机标注功率为300W&#xff0c;实际为105W&#xff0c;绞肉机标注功率300W&#xff0c;实际功…

[附源码]java毕业设计咖啡销售管理系统-

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

总线仲裁的方式

总线仲裁的基本概念 同一时刻只能有一个设备控制总线传输操作&#xff0c;可以有一个或多个设备从总线接收数据。 将总线上所连接的各类设备按其对总线有无控制功能分为&#xff1a; 主设备&#xff1a;获得总线控制权的设备。 从设备&#xff1a;被主设备访问的设备&#xff0…

C++11标准模板(STL)- 算法(std::stable_partition)

定义于头文件 <algorithm> 算法库提供大量用途的函数&#xff08;例如查找、排序、计数、操作&#xff09;&#xff0c;它们在元素范围上操作。注意范围定义为 [first, last) &#xff0c;其中 last 指代要查询或修改的最后元素的后一个元素。 将元素分为两组&#xff0…

内网的基本构造

内网的基本构造 内网也就是常说的局域网(Local Area Network,简称LAN)&#xff0c;是由两个或两个以上相连的计算机组成&#xff0c;局域网是包含在较小区域内的网络&#xff0c;覆盖范围一般是方圆几千米之内&#xff0c;通常位于建筑物内。家庭WiFi网络和小型企业网络是常见…

一次GC暂停时间过长的排查与优化

告警 GC日志分析 日志 2022-11-17T14:28:40.3150800: 1956232.826: [GC (Allocation Failure) 2022-11-17T14:28:40.3150800: 1956232.826: [ParNew: 1576103K->2817K(1769472K), 0.0241066 secs] 4197176K->2624616K(5046272K), 0.0243910 secs] [Times: user0.04 sys…

nginx配置详解

nginx 是一个高性能的HTTP 和反向代理服务器,特点是占有内存少&#xff0c;并发能力强 用途&#xff1a; 可以作为静态页面的 web 服务器正向代理&#xff08;通过nginx代理 访问外部资源&#xff0c;比如fanqiang&#xff09;反向代理 &#xff08;隐藏真实服务器地址&…

创建vite项目

前提&#xff1a;Vite需要Node.js版本> 12.0.0 1. 创建文件夹&#xff0c;文件夹下打开cmd,输入 yarn create vite C:\Users\admin\Desktop\new>yarn create vite 2. 进行选择 3. vite.config.js 配置 &#xff08;注意按目录创建global.scss&#xff09; import …

关于射频测试电缆 这些知识你知道吗?

射频电缆组件的正确选择除了频率范围&#xff0c;驻波比&#xff0c;插入损耗等因素外&#xff0c;还应考虑电缆的机械特性&#xff0c;使用环境和应用要求&#xff0c;另外&#xff0c;成本也是一个永远不变的因素。以下带大家了解射频电缆相关知识。 射频电缆组件的基本选择原…