(点击跳转即可哦)

java学习专栏

LeetCode刷题专栏


文章目录

  • maven的使用
    • 了解maven
    • 创建maven工程
      • 总结

maven的使用

了解maven

什么是maven?

maven 是 apache(开源组织) 提供的一个项目构建工具(project build tool)

是一个项目管理工具,方便进行第三方jar包的导入和管理,方便对当前项目的整个生命周期(打包、测试、发布等等)进行跟踪

什么是构建(build): 依赖处理(dependencies)、编译(compile)、打包(package)

那么依赖又是什么呢?

我们之前写的代码,基本用到的类来自于(我们自己写的类,JDK原生提供的类),随着代码变得复杂、庞大;就需要用到来自 第三方提供的类(比如之前 JDBC时 使用的类)

别人写好的类:某个组织,提供了一组类文件

Java提供了一种打包方式:将类以及相关文件,打包格式——Jar包(Java ARchaive) zip 包(放着各种各样的类文件)——eg: mysql-connector-java.jar

随着一个工程中使用的jar包越来越多,jar包的管理也变得越来越复杂。——依赖(dependency)管理


jar包是某个组织 提供的某个功能,有一定的版本

group(组织)

artifact(成品)

version(版本)

jar包中都是一系列编译好的class文件,jar包其实就是一个压缩包

可执行jar包指的是,jar包中指定入口类和主方法,就是通过这个主类和主方法将整个程序运行起来。

通过 groupld + artifactld+version 一定可以唯一确定一个具体的jar包

下载的过程也交给maven进行处理


注意 :maven 和IDEA 本身是独立的两个软件。 IDEA 是一个强大的Java开发环境,支持了maven 这个java生态下出名的构建工具


创建maven工程

当我们创建maven 工程时,也进入了maven体系,所以我们自己也要有自己的 groupld、artifactld和version信息

一般来说:groupld 的命名方式:com.djl

​ artifactld的命名方式:不能有中文、xxx-xxx、demo

​ version: 使用默认的

org.example

maven-demo1

1.0-SNAPSHOT

target/ 放置 构建后的各种文件的地方(包括:编译好的类文件、构建好的包…)


pom.xml (Project Object Model) 工程对象模型

使用XML(eXtension Markup Language: 扩展标记语言) 格式进行管理,通过标签(tag)组成的一颗树形结构

<project…> 开始标签

闭合标签 这两个组成完整的标签


<!--xxxxx-->  //注释

project

dependencies (复数:代表我们一个工程中可以存在多个依赖)

dependency (指定 一个具体的依赖)

groupld + artifactld + version


怎么确认依赖导入成功了

  1. pom.xml 没有报错
  2. maven 工作区的 dependencies 没有报错
  3. external libraries 中 看到了添加的依赖(对应的jar包)

注意:任何对pom.xml 的修改,都得重新加载maven工程

若点击图标等方式后,还是没有导入依赖成功,就在右侧maven功能区中 选中 clean compile package 然后运行。正常情况是不会出错的

最后在 File中,找到 Invalidate Caches… 点击

然后 点击 Invalidate and Restart 表示清除缓存并重启


总结

maven 是一个独立的项目构建工具

  1. 创建maven工程
  2. 修改pom.xml (不需要每次都手写,把之前写好的pom.xml复制过来做简单的改动即可,自己手写很容易出现拼写错误),任何时候修改完pom.xml都需要重新load maven 工程
  3. 修改完成之后,需要下载一些依赖,就让下面的进度条走一段时间,等进度条完成后再进行下一步动作
  4. 检查maven 的依赖是否处理成功
  5. 如果进度条走完后出现了问题
  1. maven功能区,lifecycle 同时选择 clean、compile、package(按住ctrl选择),然后运行,进行maven命令行的独立构建
  2. 观察命令行 最终有没有出现BUILD SUCCESS.(若没有出现,根据提示的错误去百度寻找答案)
  3. 使用File -> Invalidate Caches… 重启IDEA
  4. 如果还是不行,找到本地maven仓库,根据依赖的groupld artifactld version 找到对应的文件夹,删除后 再重试

要是对大家有所帮助的话,请帮我点个赞吧。

【你知道maven么?】相关推荐

  1. SpringBoot项目使用nacos,kotlin使用nacos,java项目使用nacos,gradle项目使用nacos,maven项目使用nacos

    SpringBoot项目使用nacos kotlin demo见Gitte 一.引入依赖 提示:这里推荐使用2.2.3版本,springboot与nacos的依赖需要版本相同,否则会报错. maven ...

  2. OpenAPI使用(swagger3),Kotlin使用swagger3,Java使用swagger3,gradle、Maven使用swagger3

    OpenAPI使用(swagger3) demo见Gitte 一.背景及名词解释 OpenAPI是规范的正式名称.规范的开发工作于2015年启动,当时SmartBear(负责Swagger工具开发的公 ...

  3. Gradle 将项目publish到Nexus,Kotlin将项目发布到nexus,springboot项目发布到maven仓库

    示例见:Gitte 公仓设置 在项目中添加maven-publish的插件 plugins {kotlin("jvm") version "1.3.72"kot ...

  4. springboot项目使用junit4进行单元测试,maven项目使用junit4进行单元测试

    首先,maven项目中引入依赖 <dependency><groupId>junit</groupId><artifactId>junit</ar ...

  5. IDEA中maven的命令及作用

    maven中的Lifecycle中的那些按钮都有哪些,都有什么功能呢? validate:验证项目的正确性以及包含所有必要的信息 compile:编译源码 test:编译和运行测试代码 package ...

  6. 如果你没用过maven的install,你应该了解一下!maven中的install功能及用法。

    maven中有一个大多数人都忽视或者没有用到过的一个功能--install,大多数java开发人员都了解maven,使用maven进行依赖管理.但使用的大多数功能不过是clean清理.compile编 ...

  7. 使用Maven打包生成的-SNAPSHOT.jar与-RELEASE.jar分别代表什么?SNAPSHOT是什么意思?RELEASE是什么意思?

    使用Maven打包后生成 XXXXXXX-1.0.0-SNAPSHOT.jar 和 XXXXXXX-1.0.0-RELEASE.jar 的区别???? 首先,根本原因:这是因为你的pom.xml中的项 ...

  8. 手动将jar包导入pom依赖,让jar包适配本地maven项目

    前言: Oracle对maven很久没有更新依赖,虽然19年更新了一版,但pom引入一直有错误. 我用的是oralce 12的依赖,虽然有jar包,但是依赖和pom没有适配,项目打包的时候还要去中央仓 ...

  9. pom文件中引入常用的maven仓库

    给大家分享几个maven仓库,如果本地总是下载很慢的话可以尝试换一下仓库或者多加几个.可以直接拖放在pom.xml中使用. 阿里云仓库 <mirrors><mirror>< ...

  10. Maven安装与配置(最实用!!!)eclipse中配置maven

    Maven安装与配置 一.需要准备的东西 JDK Eclipse(本章主要是在eclipse中进行配置maven) Maven程序包 二.下载与安装 1. 前往maven下载最新版的Maven程序: ...

最新文章

  1. 【Codevs1322】单词矩阵
  2. 专业ajax解决方案汇集
  3. codematic2连接mysql失败_codematic2.rar
  4. Github 上 36 个最实用的 Vue 开源库
  5. Java连接Mysql数据库警告:Establishing SSL connection without server's identity verification is not recommend
  6. 介绍针对企业级Flex开发的开源项目FlexibleShare
  7. noj数据结构稀疏矩阵的加法十字链表_数据结构之:图
  8. php自适应在线电影影视网站系统源码
  9. 深入理解并行编程-分割和同步设计(五)
  10. springmvc:405 request method post not supported
  11. RHEL/Centos下VSFTPD服务器搭建
  12. 【金万维】天联高级版的管理员帐号和密码忘记
  13. 基于STM32简易计算器
  14. 使用java做出围棋或者五子棋
  15. 「技巧」如何快速安装 Sketch 插件
  16. 用计算机算出用不用减肥,体脂率计算器有什么用
  17. android 代码 lut,如何将颜色LUT应用于位图图像以获取android中的滤镜效果?
  18. 34.FFmpeg学习笔记 - ffplay源码解读2之数据结构
  19. 面向对象和面向过程的区别及面试问答
  20. BIOS入门基础------TXT

热门文章

  1. 排序算法分析归纳总结
  2. 前端 HTML5 Svg 画板(支持视频、图片上涂鸦,支持缩放、修改、颜色、复选...)
  3. 安防摄像机手机直播方案介绍
  4. cmseasy(易通CMS) 注入漏洞 上传漏洞 爆路径ODAY(含修复)
  5. 微软外包人才之道:一流外包团队如何打造
  6. NTP网络时间服务器应用“智能交通‘边缘云脑’系统
  7. E+H超声波液位计变送器维修FMU90-R11CA111AA3A
  8. C++ 修改char数组的值
  9. poj 2942 Knights of the Round Table(双连通分量+tarjan+二分图判定)
  10. git push报错 emote: error: GH007