Maven 使用详细教程

news2024/11/17 18:24:10

目录

Maven 介绍

Maven 安装

1、安装JDK

2、下载Maven安装文件

3、配置环境变量

4、检测安装成功

Maven 标准工程结构

Maven 版本要素

Maven仓库

1、本地仓库: 

2、中央仓库

3、其他远程仓库

创建Maven工程

使用命令方式创建Maven工程

Eclipse中创建Maven工程


Maven 介绍

Maven 是 Apache 下的一个纯 Java 开发的开源项目

Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理

Maven 也可被用于构建和管理各种项目,例如 C#,Ruby,Scala 和其他语言编写的项目

Maven它提供了中央仓库,能帮我们自动下载构件

Maven仓库就是放置所有JAR文件(WAR,ZIP,POM等等)的地方,所有Maven项目可以从同一个Maven仓库中获取自己所需要的依赖JAR,这节省了磁盘资源

由于Maven仓库中所有的JAR都有其自己的坐标,该坐标告诉Maven它的组ID,构件ID,版本,打包方式等等,因此Maven项目可以方便的进行依赖版本管理

Maven 安装

1、安装JDK

maven依赖于java,需先安装java环境

打开控制台,执行 java -version 确认本地已安装成功

2、下载Maven安装文件

打开官网,选择合适版本,下载并解压到本地

官网地址: Maven – Download Apache Maven

3、配置环境变量

添加环境变量MAVEN_HOME,值为 Maven 的安装路径

4、检测安装成功

执行mvn -v命令,若输出类似下面的 maven 版本信息,说明配置成功 

Maven 标准工程结构

|-- pom.xml(maven的核心配置文件)

|-- src

|-- main

  |-- java(java源代码目录)

  |-- resources(资源文件目录)

|-- test

    |-- java(单元测试代码目录)

|-- target(输出目录,所有的输出物都存放在这个目录下)

    |-- classes(编译后的class文件存放处)

Maven 版本要素

maven 使用如下几个要素来唯一定位

1、groupId - 团体、组织的标识符。它以创建这个项目的组织名称的逆向域名(reverse domain name)开头。一般对应着 JAVA 的包的结构。例如 org.apache
2、artifactId - 单独项目的唯一标识符。比如我们的 tomcat。不要在 artifactId 中包含点号(.)。
3、version - 一个项目的特定版本
4、packaging - 项目的类型,默认是 jar,描述了项目打包后的输出。类型为 jar 的项目产生一个 JAR 文件,类型为 war 的项目产生一个 web 应用
 

Maven仓库

Maven可以在某个位置统一存储所有Maven项目共享的构件,这个统一的位置就是仓库

1、本地仓库: 

Maven 本地仓库默认地址为:${user.home}/.m2/repository

Maven 的本地仓库,在安装 Maven 后并不会创建,它是在第一次执行 maven 命令的时候才被创建

通过修改 %MAVEN_HOME%/conf/settings.xml (或者:${user.home}/.m2/settings.xml,针对当前用户(推荐))配置文件可以更改本地仓库的位置

2、中央仓库

安装完 Maven ,本地仓库几乎是空的,这时需要从远程仓库下载所需构件。Maven 配置了一个默认的远程仓库,即中央仓库

中央仓库作为Maven默认的远程仓库,包含了绝大多数流行的开源Java构件,以及源码、作者信息、SCM、信息、许可证信息等

3、其他远程仓库

创建Maven工程

使用命令方式创建Maven工程

1、初始化maven工程

使用如下命令:

mvn archetype:generate

-DgroupId=com.min.app

-DartifactId=firstApp

-DarchetypeArtifactId=maven-archetype-quickstart

-DarchetypeVersion=1.4

-DinteractiveMode=false

会在当前路径新建一个名为firstApp的 Maven 工程,其目录结构如下:

firstApp
|-- pom.xml  (配置文件)
 -- src
    |-- main  
    |    -- java  (java源码)
    |        -- com
    |            -- min
    |                -- app
    |                    -- App.java
     -- test
         -- java  (java测试源码)
             -- com
                 -- min
                     -- app
                         -- AppTest.java

2、构建项目:

执行以下命令,即可构建项目:

mvn clean package -Dmaven.test.skip=true -B -U

 构建成功后,在当前路径下会产生一个 target 目录,其中包含了构建的输出物,如:jar 包、class 文件

3、启动项目:

我们可以执行以下命令启动 jar 包

java -cp target/firstAPP-1.0-SNAPSHOT.jar com.min.app.App

Eclipse中创建Maven工程

file > new > other 选择maven project 下一步

选择相关的项目文件

 设置项目名称

生成的项目如下:

未完待续。。

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

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

相关文章

智能大棚自动控制系统 实现传统农业精细化管理

新型农业经营主体管理系统是指为了适应农村经济发展需求,提高农业生产组织化、规模化、现代化程度,促进农业产业结构调整和农村产业转型升级,推动农村经济社会持续健康发展而建立的一套管理体系。 该系统主要包括农产品生产、种植、养…

JavaWeb学习路线(8)——登录

一、基本登录功能 (一)需求: 根据账号与密码判别用户是否可以登录 (二)实现步骤 Controller接收传递的JSON格式数据,使用RequestBody实体类进行接收,调用Service具体处理。Service创建登录接…

循环购应运而生,让老百姓敢于消费、有钱消费、愿意消费

​小编介绍:10年专注商业模式设计及软件开发,擅长企业生态商业模式,商业零售会员增长裂变模式策划、商业闭环模式设计及方案落地;扶持10余个电商平台做到营收过千万,数百个平台达到百万会员,欢迎咨询。 无论…

7 植物背景分离、RGB、HSV特征提取案例(matlab程序)

学习目标:背景分离和RGB等特征提取 1.简述 叶片RGB图像背景精确分离的方法,包括以下图像背景分离方法:S1:选取叶片,所得到的原始图像;S2:采用MATLAB 2016R软件将RGB图像转化为HSV图像,以饱和度0.190.21为界限,将小于界限的图像明度调整为0,并转化为灰度图;S3:用edg…

Redis高并发分布式锁

文章目录 高并发场景秒杀抢购超卖Bug高并发场景秒杀抢购Demo测试结果 JVM级别锁使用nginx对本地服务进行负载均衡 Redis实现分布式锁Redis分布式锁实现DemoRedis分布式锁有关问题 分布式锁性能的提升减少锁的粒度使用异步处理 高并发场景秒杀抢购超卖Bug 在今天的数字化世界中&…

供应商索赔(金税数据)导入并创建凭证(ALV长篇备忘三)

情境/背景:供应商三包索赔款项源起QMS质量系统,联动金税系统完成发票开具,最终在SAP系统中创建完成财务凭证。该流程为手工操作,费时费力且效率低下容易出错。 目标/任务:把QMS供应商三包索赔业务搬上线,同SAP FI顾问梳理功能说明书&#xf…

2023-06-29:redis中什么是热点Key?该如何解决?

2023-06-29:redis中什么是热点Key?该如何解决? 答案2023-06-29: 在Redis中,经常被访问的key被称为热点key。 产生原因和危害 原因 热点key问题产生的原因可以归纳为以下两种情况: 用户对于某些数据的…

安卓弹出popup之XPopup

弹窗自己写的话。虽然很简单。但不够丝滑。如果要优雅点的。又要添加动画。但是。。。如果用上了XPopup,动画别人帮你写。爽不爽?丝滑不丝滑。。? 丝滑第一步。先引入依赖 implementation com.github.li-xiaojun:XPopup:2.9.19如果没有这些…

git版本回退操作

本文 git 相关命令: git reset:回退版本,可指定某一次提交的版本。git reset [--soft | --mixed | --hard] commitId。git revert:撤销某个提交,做反向操作,生成新的commitId,原有提交记录保留…

基于java+swing+mysql图书管理系统V7.0

基于javaswingmysql图书管理系统V7.0 一、系统介绍二、功能展示1.项目骨架2.数据库表3.项目内容4.主界面5.登陆6、借阅管理7、修改读者信息8、图书验收9、新书订购 四、其它1.其他系统实现五.获取源码 一、系统介绍 项目类型:Java SE项目(awtswing&…

(四)python实战——Sqlite3数据库表的增、删、查、改操作案例

前言 Sqlite3是一个轻量级的数据库,本节内容我们介绍一下如何在python环境中使用Sqlite数据库,完成数据库表的简单增、删、查、改操作。开始本节内容之前,我们需要先安装好python环境,我们使用的是python3的环境。 正文 ①创建…

【Docker】利用Dockerfile制作个人的镜像文件详细讲解

前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 📕作者简介:热…

如何避免死锁--方法三--scoped_lock

scoped_lock是c17新增的一种模板&#xff0c;也是RAII模式。其是可变参数&#xff0c;可以接受各种互斥类型作为参数模板&#xff0c;可以指定多个互斥量。 前文中我们说到&#xff0c;lock可以锁定多个互斥量&#xff0c;scoped_lock也可以做到。 void thread1() {cout <&…

【网络互联设备】网络杂谈(15)之网桥、路由器、网关、集线器、交换机、中继器的作用与概念

涉及知识点 网桥、路由器、网关、集线器、交换机、中继器的作用与概念&#xff0c;常见的网络互联设备&#xff0c;什么是网桥、路由器、网关、集线器、交换机、中继器。 原创于&#xff1a;CSDN博主-《拄杖盲学轻声码》&#xff0c;更多内容可去其主页关注下哈&#xff0c;不…

STM32F103基于HAL工程挂载FatFS驱动SD卡实现IAP功能

STM32F103基于HAL工程挂载FatFS驱动SD卡实现IAP功能 &#x1f3ac;基于SD卡IAP升级演示&#xff1a; &#x1f4cd;相关篇《STM32F103基于HAL工程挂载FatFS驱动SD卡》 &#x1f4cc;《使用STM32F103的串口实现IAP程序升级功能》 &#x1f449;&#x1f3fb;ST相关文档&…

并发-JMM-CPU缓存一致性协议MESI

回顾 指令重排 第一V读&#xff0c;都不能指令重排&#xff1b;第二个V写&#xff0c;都不能指令重排 普通读写&#xff0c;写读都会发生指令重排&#xff0c;V写普通读写会发生指令重排&#xff0c;普通读写V读会发生指令重排 CPU缓存一致性协议MESI java—》cpu的执行过程…

Three.js教程:高光网格材质Phong

推荐&#xff1a;将 NSDT场景编辑器 加入你的3D工具链 其他系列工具&#xff1a; NSDT简石数字孪生 高光网格材质Phong 高光网格材质MeshPhongMaterial和基础网格材质MeshBasicMaterial、漫反射网格材质MeshLambertMaterial一样都是网格模型的Mesh的材质。 高光网格材质MeshPho…

Web测试的主要内容和测试方法有哪些?

Web测试的主要内容&#xff1a; 一、输入框 二、搜索功能 三、增加、修改功能 四、删除功能 五、注册、登录模块 六、上传图片测试 七、查询结果列表 八、返回键检查 九、回车键检查 十、刷新键检查 Web测试的测试方法&#xff1a; 1.在测试时&#xff0c;与网络有关的步骤或者…

npm报错(npm ERR! Unexpected token ‘.‘)

使用 nvm 将 node 切换到高版本后&#xff0c;运行 npm 相关的命令报的这个错 解决办法&#xff1a; 1、通过nvm list 命令查看当前都安装的node版本列表&#xff0c;依次通过 nvm uninstall [version] 命令将已经安装的 node 版本依次删除。 [version] 代表 node 版本号。 2…

目标检测 pytorch复现Yolov4目标检测项目

目标检测 pytorch复现Yolov4目标检测项目 YOLOV4介绍YOLOV4结构解析1、主干特征提取网络Backbone2、特征金字塔3、YoloHead利用获得到的特征进行预测4、预测结果的解码 YOLOV4的训练1、YOLOV4的改进训练技巧2、loss组成 训练自己的YoloV4模型 YOLOV4介绍 YOLOV4结构解析 1、主…