【你知道maven么?】
(点击跳转即可哦)
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
怎么确认依赖导入成功了:
- pom.xml 没有报错
- maven 工作区的 dependencies 没有报错
- external libraries 中 看到了添加的依赖(对应的jar包)
注意:任何对pom.xml 的修改,都得重新加载maven工程
若点击图标等方式后,还是没有导入依赖成功,就在右侧maven功能区中 选中 clean compile package 然后运行。正常情况是不会出错的
最后在 File中,找到 Invalidate Caches… 点击
然后 点击 Invalidate and Restart 表示清除缓存并重启
总结
maven 是一个独立的项目构建工具
- 创建maven工程
- 修改pom.xml (不需要每次都手写,把之前写好的pom.xml复制过来做简单的改动即可,自己手写很容易出现拼写错误),任何时候修改完pom.xml都需要重新load maven 工程
- 修改完成之后,需要下载一些依赖,就让下面的进度条走一段时间,等进度条完成后再进行下一步动作
- 检查maven 的依赖是否处理成功
- 如果进度条走完后出现了问题
- maven功能区,lifecycle 同时选择 clean、compile、package(按住ctrl选择),然后运行,进行maven命令行的独立构建
- 观察命令行 最终有没有出现BUILD SUCCESS.(若没有出现,根据提示的错误去百度寻找答案)
- 使用File -> Invalidate Caches… 重启IDEA
- 如果还是不行,找到本地maven仓库,根据依赖的groupld artifactld version 找到对应的文件夹,删除后 再重试
要是对大家有所帮助的话,请帮我点个赞吧。
【你知道maven么?】相关推荐
- SpringBoot项目使用nacos,kotlin使用nacos,java项目使用nacos,gradle项目使用nacos,maven项目使用nacos
SpringBoot项目使用nacos kotlin demo见Gitte 一.引入依赖 提示:这里推荐使用2.2.3版本,springboot与nacos的依赖需要版本相同,否则会报错. maven ...
- OpenAPI使用(swagger3),Kotlin使用swagger3,Java使用swagger3,gradle、Maven使用swagger3
OpenAPI使用(swagger3) demo见Gitte 一.背景及名词解释 OpenAPI是规范的正式名称.规范的开发工作于2015年启动,当时SmartBear(负责Swagger工具开发的公 ...
- Gradle 将项目publish到Nexus,Kotlin将项目发布到nexus,springboot项目发布到maven仓库
示例见:Gitte 公仓设置 在项目中添加maven-publish的插件 plugins {kotlin("jvm") version "1.3.72"kot ...
- springboot项目使用junit4进行单元测试,maven项目使用junit4进行单元测试
首先,maven项目中引入依赖 <dependency><groupId>junit</groupId><artifactId>junit</ar ...
- IDEA中maven的命令及作用
maven中的Lifecycle中的那些按钮都有哪些,都有什么功能呢? validate:验证项目的正确性以及包含所有必要的信息 compile:编译源码 test:编译和运行测试代码 package ...
- 如果你没用过maven的install,你应该了解一下!maven中的install功能及用法。
maven中有一个大多数人都忽视或者没有用到过的一个功能--install,大多数java开发人员都了解maven,使用maven进行依赖管理.但使用的大多数功能不过是clean清理.compile编 ...
- 使用Maven打包生成的-SNAPSHOT.jar与-RELEASE.jar分别代表什么?SNAPSHOT是什么意思?RELEASE是什么意思?
使用Maven打包后生成 XXXXXXX-1.0.0-SNAPSHOT.jar 和 XXXXXXX-1.0.0-RELEASE.jar 的区别???? 首先,根本原因:这是因为你的pom.xml中的项 ...
- 手动将jar包导入pom依赖,让jar包适配本地maven项目
前言: Oracle对maven很久没有更新依赖,虽然19年更新了一版,但pom引入一直有错误. 我用的是oralce 12的依赖,虽然有jar包,但是依赖和pom没有适配,项目打包的时候还要去中央仓 ...
- pom文件中引入常用的maven仓库
给大家分享几个maven仓库,如果本地总是下载很慢的话可以尝试换一下仓库或者多加几个.可以直接拖放在pom.xml中使用. 阿里云仓库 <mirrors><mirror>< ...
- Maven安装与配置(最实用!!!)eclipse中配置maven
Maven安装与配置 一.需要准备的东西 JDK Eclipse(本章主要是在eclipse中进行配置maven) Maven程序包 二.下载与安装 1. 前往maven下载最新版的Maven程序: ...
最新文章
- 【Codevs1322】单词矩阵
- 专业ajax解决方案汇集
- codematic2连接mysql失败_codematic2.rar
- Github 上 36 个最实用的 Vue 开源库
- Java连接Mysql数据库警告:Establishing SSL connection without server's identity verification is not recommend
- 介绍针对企业级Flex开发的开源项目FlexibleShare
- noj数据结构稀疏矩阵的加法十字链表_数据结构之:图
- php自适应在线电影影视网站系统源码
- 深入理解并行编程-分割和同步设计(五)
- springmvc:405 request method post not supported
- RHEL/Centos下VSFTPD服务器搭建
- 【金万维】天联高级版的管理员帐号和密码忘记
- 基于STM32简易计算器
- 使用java做出围棋或者五子棋
- 「技巧」如何快速安装 Sketch 插件
- 用计算机算出用不用减肥,体脂率计算器有什么用
- android 代码 lut,如何将颜色LUT应用于位图图像以获取android中的滤镜效果?
- 34.FFmpeg学习笔记 - ffplay源码解读2之数据结构
- 面向对象和面向过程的区别及面试问答
- BIOS入门基础------TXT
热门文章
- 排序算法分析归纳总结
- 前端 HTML5 Svg 画板(支持视频、图片上涂鸦,支持缩放、修改、颜色、复选...)
- 安防摄像机手机直播方案介绍
- cmseasy(易通CMS) 注入漏洞 上传漏洞 爆路径ODAY(含修复)
- 微软外包人才之道:一流外包团队如何打造
- NTP网络时间服务器应用“智能交通‘边缘云脑’系统
- E+H超声波液位计变送器维修FMU90-R11CA111AA3A
- C++ 修改char数组的值
- poj 2942 Knights of the Round Table(双连通分量+tarjan+二分图判定)
- git push报错 emote: error: GH007