🍓 简介:JAVA领域优质创作者🥇、一名在校大三学生🎓、在校期间参加各种省赛、国赛,斩获一系列荣誉🏆。
🍓 关注我:关注我学习资料、文档下载统统都有,每日定时更新文章,励志做一名JAVA资深程序猿👨💻。
1、坐标
什么是坐标?
坐标在平面几何中坐标(x,y)可以标识平面中唯一的点。
Maven坐标主要组成(以下四个标识决定了Maven的唯一性)
–groupId:定义当前Maven项目隶属项目
- groupld :定义当前Maven项目隶属的实际项目。首先, Maven项目和实际项目不-定是一-对一 -的关系。比如SpringFrameWork这一实际项目,其对应的Maven项目会有很多,如spring-core spring-contex等。这是由于Maven中模块的概念,因此,一个实际项目往往会被划分成很多模块。其次,groupld不应该对应项目隶属的组织或公司。原因很简单, -个组织下会有很多实际项目,如果groupld只定义到组织级别,而后面我们会看到 , aifactd只能定义Maven项目(模块) , 那么实际项目这个层次将难以定义。最后, groupld的表示方式与Java包名的表达方式类似,通常与域名反向一对应。
–artifactId:定义实际项目中的一个模块
- artifactld :该元素定义当前实际项目中的一-个Maven项目(模块) , 推荐的做法是使用实际项目名称作为artifactld的前缀。比如上例中的my-app。
–version:定义当前项目的当前版本
- version :该元素定义Maven项目当前的版本
–packaging:定义该项目的打包方式
- packaging :定义Maven项目打包的方式,首先,打包方式通常与所生成构件的文件扩展名对应,如上例中的packaging为jar,最终的文件名为my-app-0.1-SNAPSHOT.jar。也可以打包成war, ear等。当不定义packaging的时候 , Maven会使用默认值jar
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.rjxy.maven</groupId>
<artifactId>Hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Hello</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Maven为什么使用坐标?
- Maven世界拥有大量构建,我们需要找一个用来唯一标识一个构建的统一规范
- 拥有了统一规范,就可以把查找工作交给机器
2、 依赖的范围
依赖声明主要包含如下元素:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
</dependencies>
其中依赖范围scope 用来控制依赖和编译,测试,运行的classpath的关系. 主要的是三种依赖关系如下:
- compile: 默认编译依赖范围。对于编译,测试,运行三种classpath都有效
- test:测试依赖范围。只对于测试classpath有效
- provided:已提供依赖范围。对于编译,测试的classpath都有效,但对于运行无效。因为由容器已经提供,例如servlet-api(Tomcat)
- runtime:运行时提供。例如:jdbc驱动
3、仓库管理
什么是Maven仓库?
用来统一存储所有Maven共享构建的位置就是仓库
Maven仓库布局
- 根据Maven坐标定义每个构建在仓库中唯一存储路径
仓库的分类
-
本地仓库
~/.m2/repository/(默认的仓库目录)
每个用户只有一个本地仓库(需要从中央仓库中下载资源存到本地仓库) -
远程仓库
- 中央仓库:Maven默认的远程仓库 http://repo1.maven.org/maven2
- 私服:是一种特殊的远程仓库,它是架设在局域网内的仓库
- 镜像:用来替代中央仓库,速度一般比中央仓库快
4、 生命周期
何为生命周期?
- Maven生命周期就是为了对所有的构建过程进行抽象和统一
- 包括项目清理,初始化,编译,打包,测试,部署等几乎所有构建步骤
Maven三大生命周期
- clean:清理项目的
- default:构建项目的
- site:生成项目站点的
如果你也是看准了Python,想自学Python,在这里为大家准备了丰厚的免费学习大礼包,带大家一起学习,给大家剖析Python兼职、就业行情前景的这些事儿。
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、全套PDF电子书
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。
四、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
成为一个Python程序员专家或许需要花费数年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!
最后祝你好运!!!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!