【Maven学习】基础讲解 + 配置分析

文章目录

  • Maven仓库
  • Maven配置
  • Maven标签
  • Maven父子
  • Maven打包
  • Maven IDEA

这篇文章不是用来初学的,所以Maven使用原因就不过多赘述了。

Maven仓库

Maven维护了一个中央仓库http://repo1.maven.org/maven2,所有第三方库将自身的jar以及相关信息上传至中央仓库,Maven就可以从中央仓库把所需依赖下载到本地。

Maven并不会每次都从中央仓库下载jar包。一个jar包一旦被下载过,就会被Maven自动缓存在本地目录用户主目录的.m2目录(本地仓库),所以,除了第一次编译时因为下载需要时间会比较慢,后续过程因为有本地缓存,并不会重复下载相同的jar包。

除了可以从Maven的中央仓库下载外,还可以从Maven的镜像仓库下载。如果访问Maven的中央仓库非常慢,我们可以选择一个速度较快的Maven的镜像仓库。Maven镜像仓库定期从中央仓库同步。
【Maven学习】基础讲解 + 配置分析_第1张图片

Maven配置

对于Maven的配置,都在Maven/conf/settings.xml文件中修改内容就好了

仓库配置

本地仓库:
远程仓库:

Maven标签

唯一标签

groupId:属于组织的名称,类似Java的包名;
artifactId:该jar包自身的名称,类似Java的类名;
version:该jar包的版本。

依赖关系< scope >

compile	编译时需要用到该jar包(默认)
test	编译Test时需要用到该jar包	
runtime	编译时不需要,但运行时需要用到	
provided	编译时需要用到,但运行时由JDK或某个服务器提供

Maven父子

版本号管理

1、
这里其实是起到管理依赖jar版本号的作用,一般只会在项目的最顶层的pom.xml中使用到,
所有子module如果想要使用到这里面声明的jar,只需要在子module中添加相应的groupId和artifactId即可,
并不需要声明版本号,需要注意的是这里面只是声明一个依赖,并不是真实的下载jar,只有在子module中使用到,才会去下载依赖。

2、
我们是这里引入了一个jar包之后,这里如果没有加上version版本号的话,
那么maven就会去里找对应groupId和artifactId的jar,
如果有就继承他,如果没有就会报错,这时候其实在我们配置的本地仓库中会真实的下载对应的jar包,
这时候所有的子module都会默认继承这里面所有声明的jar。

依赖继承
我们希望在父pom中引入相关依赖,都记录在下,子模块直接继承父pom的依赖,在子模块中开发中就不必再去引入依赖。

情况一:所有子模块都需要SpringBoot依赖,那么父工程就引入SpringBoot,让子模块继承。
情况二:部分子模块需要SpringBoot依赖,那么该部分子工程自己引入SpringBoot依赖,父工程来管理版本号

Maven打包

任务:本地打包上传maven私有仓库,别人引用后能够看到源码及注释

指定上传仓库地址
首先需要到自己项目里的pom.xml里添加下边一段

url是对应你的仓库地址,你可以在浏览器里访问该url,输入账号密码,就可以访问

  <distributionManagement>
  		
        <repository>
            <id>releasesid>
            <url>http://maven.aaaaaa.com/nexus/content/repositories/thirdpartyurl>
        repository>
        
        <snapshotRepository>
            <id>nexus-snapshotsid>
            <url>http://maven.aaaaaa.com/nexus/content/repositories/snapshotsurl>
        snapshotRepository>
    distributionManagement>

设置账号密码
id对应的releases其实是与指定的maven配置文件conf/setttings.xml中对应,如下图所示:
【Maven学习】基础讲解 + 配置分析_第2张图片
如果对应的settings.xml里没有配置对应的标签,那也需要添加一下。如下示例

  <servers>
    <server>
    	
        <id>releasesid>
        
        <username>adminusername>
        <password>znxdpassword>
    server>
  servers>

在IDEA中执行deploy命令,完成上传
【Maven学习】基础讲解 + 配置分析_第3张图片
查看私有仓库
【Maven学习】基础讲解 + 配置分析_第4张图片

Maven IDEA

【Maven学习】基础讲解 + 配置分析_第5张图片

你可能感兴趣的:(Java,maven,学习,java)