Idea安装配置Maven【简述】

2023-11-12

Maven

是一个管理和构建Java项目的工具,它主要的生命周期:编译、测试、打包、发布。Maven项目可以在不同IDE使用,比如 Idea 和 eclipse 他们自身的项目是不能互通的,然而使用Maven构建的项目可以在这两个不同平台使用,项目结构完全相同。

Maven构建的项目拥有一套依赖机制,通过依赖的配置,开发人员就不必去相关网站下载jar包然后导入项目,比如Mysql驱动等,依赖机制会从仓库拉去开发人员需要的jar包并导入项目,这样提高了开发效率。

仓库分为:本地仓库、远程仓库、中央仓库
本地仓库:存储在本地,用户可自行创建。
远程仓库:一般是由组织、公司内部创建,存储在远程机。
中央仓库:官方仓库。

Maven项目从仓库拉取jar包流程:
在这里插入图片描述

一开始先从本地仓库查看是否有所需jar包,没有则从 中央仓库 或 远程仓库(如果配置了)拉取,拉取并返回后,本地仓库会先把jar包存储,最后在导入项目。

Maven基本配置

这里先说明一下,现在的Idea一般都自带Maven了,但是在学习或者是工作中,我们一般会使用自己安装的Maven。如果你就是想用Idea自带的Maven,请跳到 Maven的使用。

在这里插入图片描述
下载后解压到某一路径即可,建议路径清晰,下面配置环境需要。

解压后:
在这里插入图片描述

bin:放置了一些Maven命令;
conf:放置了一些Maven配置文件;

  • Maven的配置

    • 配置环境变量

    该说不说,又到了我们经典的配置 环境变量 的环节。

老样子,右键点击此电脑,选择属性。

在这里插入图片描述

选择右边的高级系统设置。

在这里插入图片描述

点击环境变量。

在这里插入图片描述

Maven根目录就是你刚刚解压的那个路径

在这里插入图片描述

点击编辑系统环境变量Path,然后填写%MAVEN_HOME%\bin,最后确定即可

在这里插入图片描述

打开cmd,输入mvn -version,查看是否配置成功。

在这里插入图片描述

  • 编辑settings文件

让我们先在此目录创建一个本地仓库(其实在哪创建都可以,名字随便起,记得路径就行)

在这里插入图片描述

然后打开,conf目录下的settings文件

在这里插入图片描述

在文件中找到此处配置本地仓库

在这里插入图片描述

最后这里配置下阿里云镜像,因为中央仓库下载太慢了


在这里插入图片描述

  <!--阿里云镜像连接远程仓库-->
    <mirror>
      <id>aliyun</id>
      <mirrorOf>central</mirrorOf>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>

  </mirrors>

Maven的基本配置完成,让我我们转到Idea。

  • Idea配置Maven

首先创建一个项目。

在这里插入图片描述

打开Idea,左上角选择File---->Settings----->搜索Maven。

在这里插入图片描述

这时我们对这三项进行修改,选择我们自己安装的Maven,点击Apply----->OK

在这里插入图片描述

左上角File---->New---->Module 创建一个模块。

在这里插入图片描述
在这里插入图片描述

可以看到这是一个Maven项目的整体结构。
src 是存储代码的文件。

main 存储 源代码文件Java 和 资源文件resources。

test 存储 测试代码文件Java 和 测试资源文件resources。

target 存储项目编译后的字节码文件。

pom.xml 是Maven项目的核心配置文件。

在这里插入图片描述

  • 依赖使用

让我们打开Maven的核心配置文件 pom.xml

我这里以导入Mysql驱动依赖为例。

dependencies:表示依赖集,依赖集中有很多依赖项。

dependency:表示依赖项。

artifactId:项目名称,一般只要输入项目名称,Idea就会自动提示选择版本。

注:文件报红属正常现象,证明你的本地仓库还没还没有这个jar包。

配置了依赖后还需要点击右上角的小按钮刷新,才会开始拉取jar包。

在这里插入图片描述

此时在Idea的右侧,dependencies就会出现导入的jar包了。

在这里插入图片描述

你也可以查看你的本地仓库,可以看见Mysql驱动jar包已经存储在本地仓库了。

其他jar包的拉取也是一样的。

在这里插入图片描述

总结:
到这里我们只了解Maven如何配置,Maven是什么结构,Maven的依赖如何使用;但是Maven的命令使用、Maven核心配置文件里面的一些坐标还需要我们自己去了解。笔者其实也是刚刚接触Maven项目,有些地方说不明白还请海涵,有错误请指出,共同努力,做一个合格的Java开发人员,谢谢!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Idea安装配置Maven【简述】 的相关文章

  • Java - 红、绿、蓝获取RGB

    通过致电getRGB int x int y with a BufferedImage对象 得到一个负数 如何将三个不同的值 红色 绿色和蓝色 转换为这个单个负数 使用颜色类 new Color r g b getRGB
  • Android CursorAdapter、ListView 和后台线程

    我一直在开发的这个应用程序有包含数兆字节数据的数据库可供筛选 许多活动只是列表视图 通过数据库中的各个级别的数据下降 直到到达 文档 即从数据库中提取并显示在手机上的 HTML 我遇到的问题是 其中一些活动需要能够通过捕获击键并重新运行带有
  • Java HashMap 嵌套泛型与通配符

    我正在尝试创建包含自定义类的不同子类的哈希集的哈希映射值的哈希映射 如下所示 HashMap
  • 我应该使用 JDBC getNString() 而不是 getString() 吗?

    我们正在构建一个由 Oracle 数据库支持的 Java 应用程序 我们使用 JDBC 驱动程序 访问该数据库ojdbc6 jar and orai18n jar 数据库模式主要使用以下方式存储文本列NVARCHAR2数据类型 The JD
  • 想要从java中的char数组创建字符流

    我想从 char 数组构造一个流以使用 java 8 功能 例如过滤器和映射 char list a c e Stream
  • 为什么Java中的文件名与公共类名相同? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在Java中 文件名应该与文件名相同public class包含在该文件中 为什么这是一个限制 它有什么目的 Java 有一个有趣的方法 如果给
  • AWS SDK 2 承担角色

    Bean public DynamoDbClient amazonDynamoDB final AssumeRoleRequest assumeRoleRequest AssumeRoleRequest builder roleSessio
  • 使用 Hibernate Criteria 过滤 Map 中的键和值

    我有以下持久类 public class Code ElementCollection targetClass CodeValue class MapKeyClass CodeProperty class JoinTable name co
  • 外部实体更改后索引不更新

    我目前正在开发一个项目 使用 JPA 2 1 保存数据并使用 hibernate search 4 5 0 final 搜索实体 映射类和索引后 搜索工作正常 但是 当我更改值时描述B 类从 someStr 到 anotherStr 数据库
  • 如何修复maven错误JAVA_HOME环境变量未正确定义

    当我在虚拟环境中检查maven的版本时 出现以下错误 The JAVA HOME environment variable is not defined correctly This environment variable is need
  • 使用 equals 方法比较两个对象,Java

    我有一个对象数组 我想将它们与目标对象进行比较 我想返回与目标对象完全匹配的对象的数量 这是我的计数方法 public int countMatchingGhosts Ghost target int count 0 for int i 0
  • java数学中的组合“N选择R”?

    java库中是否有内置方法可以为任何N R计算 N选择R 公式 实际上很容易计算N choose K甚至不需要计算阶乘 我们知道 公式为 N choose K is N N K K 因此 公式为 N choose K 1 is N N N
  • 如何构建和使用 TimeSeriesCollections

    我想在图表的 X 轴上显示一些日期 并且here https stackoverflow com questions 5118684 jfreechart histogram with dates据说我必须使用 TimeSeriesColl
  • EJB 中 @Stateless 相对于 @Singleton 的真正用例是什么

    如果我正确理解EJB Singleton实际上与普通Java中的Singleton相同 也是spring中的单例 gt 一个实例 每个调用同时通过同一个实例 Stateless 声明一个 bean 它可以 但不得 具有多个实例 但限制是一个
  • 如何在 Java 中创建一个带有连字符的值的静态枚举?

    如何创建如下所示的静态枚举 static enum Test employee id employeeCode 截至目前 我遇到了错误 这对于 Java 来说是不可能的 因为每个项目都必须是有效的标识符 并且有效的 Java 标识符可能不包
  • 动态创建 JSON 对象

    我正在尝试使用以下格式创建 JSON 对象 tableID 1 price 53 payment cash quantity 3 products ID 1 quantity 1 ID 3 quantity 2 我知道如何使用 JSONOb
  • 内部类的访问修饰符[重复]

    这个问题在这里已经有答案了 可能的重复 受保护 公共内部类 https stackoverflow com questions 595179 protected public inner classes 我确信这个问题已经被问过 但我找不到
  • 接口中“不能降低继承方法的可见性”的含义

    我有两个文件 public interface PrintService void print PrintDetails details class PrintDetails private String printTemplate pub
  • 检查 Java 字符串实例是否可能包含垃圾邮件数据的最简单方法

    我有一个迭代 String 实例的过程 每次迭代对 String 实例执行很少的操作 最后 String 实例被持久化 现在 我想为每次迭代添加一个检查 String 实例是否可能是垃圾邮件的检查 我只需验证 String 实例不是 成人材
  • Swing:创建可拖动组件...?

    我在网上搜索了可拖动 Swing 组件的示例 但我发现示例不完整或不起作用 我需要的是一个摇摆组件那可以是dragged通过鼠标 在另一个组件内 被拖拽的时候 应该已经 改变它的位置 而不仅仅是 跳 到目的地 我很欣赏无需非标准 API 即

随机推荐

  • UNIAPP保存base64图片

    制作APP分享二维码 后端生成base64图片 需要前端保存到相册 上代码 saveImgFile base64 base64为base64图片值 const bitmap new plus nativeObj Bitmap test bi
  • Kotlin快速入门

    kotlin kotlin 完全兼容 java 可以和java互相调用 2017年谷歌正式将其作为android开发的第一语言 kotlin编译后产生与java编译后相同的class字节码文件 基础语法 第一个代码 hello world
  • Method的invoke()方法的使用

    public Object invoke Object obj Object args throws IllegalAccessException IllegalArgumentException InvocationTargetExcep
  • idea插件开发入门

    前言 最近想研究一款自动在idea中定位缺陷及发送JIRA的快捷工具 方便提升报自动化脚本的bug的效率 因为idea插件学习是必不可少了 沉淀小结如下 idea插件开发入门 插件用途 工程创建 配置文件 Action实现 开发语法 常用对
  • js三种获取数组的最后一个元素的方法

    一 pop 方法 pop 方法 删除数组最后一个元素 并返回该元素 所以利用这个方法可以取到数组的最后一个 同理shift 可以取到数组的第一个元素 shift 删除数组第一个元素 并返回该元素 let arr 1 2 3 let ele
  • css background image size,html - css background image content size - Stack Overflow

    body margin 0 height 100vh top box text align center height 20 border 1px solid blue background red two area display inl
  • https http 重定向 302 303

    笔者在项目中曾经遇到过这样的情况 就是整个web应用使用的https协议 但是其中某一个表单提交单服务器端 服务器返回了一个重定向的响应 但是此时浏览器直接被拦截 没有做重定向处理 F12打开一看 是因为在https的请求中 混杂着http
  • 解决docker下载安装速度慢的问题

    1 进入etc docker 目录 root iZwz98nzsodcbigjqrrmxmZ cd etc docker 2 在该目录下新建daemon json文件 registry mirrors https docker mirror
  • git 查看远程分支在不同的终端看到的分支不同的解决方法

    多人协作开发的时候 有时候有很多分支 并且在有些分支在a电脑删除之后 在b电脑查看当前分支 居然还有那个被删除掉了的分支 git fetch prune origin 直接执行这行代码 之后再查看一下远程分支 git branch a a
  • SpringBoot在K8s下实现优雅停机

    在K8s中 当我们实现滚动升级之前 务必要实现应用级别的优雅停机 否则滚动升级时 还是会影响到业务 本文介绍SpringBoot应用实现优雅停机 此次教程基于SpringBoot 2 5 0 1 加入必要依赖
  • 简单理解常量、常量池、运行时常量池和字符串常量池

    1 常量 常量在java中就值的是一般的字面量 比如字符串 整数 浮点数等等数据 简单理解java中什么叫常量 2 常量池 也叫静态常量池或者class文件常量池 说常量池一定要指明是编译器产生的 它的组成为字面量和符号引用 3 运行时常量
  • 决策树模型——鸢尾花分类

    构建一个决策树分类模型 实现对鸢尾花的分类 1 lris数据集介绍 鸢尾花数据集是机器学习领域中非常经典的一个分类数据集 数据集全名为 Iris Data Set 总共包含150行数据 每一行由4个特征值及一个目标值 类别变量 组成 其中4
  • 先进API生产力工具eqable HTTP,一站式开发调试工具推荐

    简介 Reqable是什么 Regable Fiddler Charles Postman Reqable是HTTP一站式开发 调试国产化解决方案 拥有更便捷的体验 更先进的协议 更高效的性能和更精致的界面 Reqable是一款跨平台的专业
  • 【日常积累】HTTP和HTTPS的区别

    背景 在运维面试中 经常会遇到面试官提问http和https的区别 今天咱们先来简单了解一下 超文本传输协议HTTP被用于在Web浏览器和网站服务器之间传递信息 HTTP协议以明文方式发送内容 不提供任何方式的数据加密 如果攻击者截取了We
  • 【Python】类与对象进阶

    类与对象有三大特性 封装 多态和继承 其中类和对象之间也涉及到很多的细节和方法 例如方法的分类 对象的权限等等 所有类和对象的进阶还有很多的知识点需要学习 目录 权限 私有属性和私有方法 继承 单继承 多继承 多态 实例 类与对象的内存理解
  • 利用Python消费RocketMQ消息队列数据

    语言 python3 6 环境 centos 7 1 安装 rocketmq python 地址见 https pypi org project rocketmq pip install rocketmq 2 安装rocketmq clie
  • 【定量分析、量化金融与统计学】R语言:多元线性回归实例

    今天来做一个R语言的多元线性回归的实例 题目是这样的 练习 度假村排名 旅游胜地 专门介绍高级度假和住宿的杂志 Spas 在 读者选择 评选的世界20家独立海滨精品酒店中榜上有名 所显示的数据是这些酒店根据Resorts温泉年度读者选择调查
  • Springboot整合RestTemplate发送http请求

    据技术选型总结常见的三种方式发送http请求 本文介绍Springboot整合RestTemplate发送http请求方式 其他两种如下链接 java原生发送http请求 程序三两行的博客 CSDN博客 HttpClient和OkHttp发
  • java语言简介

    什么是Java语言 一种面向对象的语言 编写程序的开始就是编写类的开始 class 用于定义类 一种平台无关的语言 必须程序运行的解释环境 真正的运行步骤为 javac编译 java解释执行 一种健壮的语言 吸收了C C 语言的优点 但是去
  • Idea安装配置Maven【简述】

    Maven 是一个管理和构建Java项目的工具 它主要的生命周期 编译 测试 打包 发布 Maven项目可以在不同IDE使用 比如 Idea 和 eclipse 他们自身的项目是不能互通的 然而使用Maven构建的项目可以在这两个不同平台使