深入讲解Java Maven配置

 更新时间:2021年10月12日 11:31:24   作者:fg714593653  
这篇文章主要介绍了Maven的安装配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

由于maven 使用上手很容易所以很多时候可以囫囵吞枣能够使用就可以了,由于作者最近在做的持续集成的代码扫描的时候,发现私有云里面大型工程maven依赖,如果没有弄清楚里面的配置复杂的项目很难在私有环境里面正常的编译过。下面作者根据自己的经验谈谈常用的配置的作用到底是什么。

首先说明maven配置都是那些配置

1. pom.xml 配置

pom.xml 配置主要分为两类,一类是用于配置自己的实际依赖, 二类仅仅用于声明一些版本和仓库便于版本管理和发布。

在我们java工程里面有一个pom.xml 这里面主要配置工程的依赖库,pom配置是可以被继承的,如果是父级依赖一般是做版本控制以及指定私有仓库的。如下图: 下图主要是展示父pom 主要作用是版本控制以及私有仓库指定。

重点来了:

上图repository的id的作用是啥(作者当时很是迷惑,可以乱写那要id干啥),这个id实际会和maven settings.xml 的配置文件里面的mirrors 配置有关。

2. maven 的settings.xml

下面重点讲一下settings的配置

如图settings 主要有mirrors servers 和profiles 三部分组成。

a. mirrors

mirrors 主要作用是一个镜像代理,便于内外网厂库切换,或者单独配置内网使用。

如果pom中的repository的id能和mirrorOf的值关联上,那么url以mirror的为准,否则以repository中自己的url为准。

<mirror>
      <id>test-nexus</id>
      <mirrorOf>*</mirrorOf>
      <name>sugon local repository</name>
      <url>http://172.22.5.34:9996/repository/sugoncloud-public/</url>
    </mirror>

mirrorof 有三种值:

* 代表 所有仓库请求都走这个配置的镜像代理。

central 默认是maven 的仓库,如果其它镜像访问不到(这里是服务访问不到而不是没有依赖包)。

其它: 比如test 、native-repo 这些关联的是pom里面配置的私有仓库id。

b. servers

servers 里面的配置 如下:

<server>
      <id>nexus-releases</id>  
      <username>deployment</username>  
      <password>deployment123</password>  
    </server>

这个配置的作用是它关联pom里面配置私有仓库的id, 在推送依赖包的使用根据id作认证的。

c. profiles

profiles 主要是配置全局私用仓库。就不详解了,和pom类似配置如下:

 <profile>
      <id>nexus-aliyun</id>
      <repositories>
        <repository>
          <id>public</id>
          <name>Public Repositories</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public</url>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
          <releases>
            <enabled>true</enabled>
          </releases>
        </repository>
		</repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>public</id>
          <name>Public Repositories</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public</url>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
          <releases>
            <enabled>true</enabled>
          </releases>          
        </pluginRepository>
      </pluginRepositories>
    </profile>

补充一个最重要的: 由于上文说到的父pom(版本控制) 子工程依赖就是依赖的父pom文件而不是jar包 如果只配置mirrors 是不能拉取父pom文件的,如果需要拉取父pom文件那么需要配置repository。

最后敬上参考地址:

Maven settings.xml中私有仓库配置浅析 - 简书

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • SpringBoot MDC全链路调用日志跟踪实现详解

    SpringBoot MDC全链路调用日志跟踪实现详解

    这篇文章主要为大家介绍了SpringBoot MDC全链路调用日志跟踪实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • spring boot加载freemarker模板路径的方法

    spring boot加载freemarker模板路径的方法

    这篇文章主要介绍了spring boot加载freemarker模板路径的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • 详解如何提升SpringBoot项目的吞吐量

    详解如何提升SpringBoot项目的吞吐量

    吞吐量是指系统在单位时间内成功处理请求的数量,当吞吐量不足以应对业务需求时,会导致请求Pile Up的情况发生,使系统不可用甚至宕机,所以提高吞吐量是保证系统可用性的有效手段之一,本文就给大家讲讲如何提升SpringBoot项目的吞吐量
    2023-07-07
  • java实现上传图片尺寸修改和质量压缩

    java实现上传图片尺寸修改和质量压缩

    这篇文章主要为大家详细介绍了java实现上传图片尺寸修改和质量压缩,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • java自带的四种线程池实例详解

    java自带的四种线程池实例详解

    java线程的创建非常昂贵,需要JVM和OS(操作系统)互相配合完成大量的工作,下面这篇文章主要给大家介绍了关于java自带的四种线程池的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • SpringBoot 防御 CSRF 攻击的流程及原理解析

    SpringBoot 防御 CSRF 攻击的流程及原理解析

    CSRF是一种非常常见的Web攻击方式,其实是很好防御的,但是由于经常被很多开发者忽略,进而导致很多网站实际上都存在 CSRF 攻击的安全隐患,这篇文章主要介绍了SpringBoot 如何防御 CSRF 攻击,需要的朋友可以参考下
    2023-05-05
  • Springboot如何通过自定义工具类获取bean

    Springboot如何通过自定义工具类获取bean

    这篇文章主要介绍了Springboot通过自定义工具类获取bean方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • 解决IDEA2020 创建maven项目没有src/main/java目录和webapp目录问题

    解决IDEA2020 创建maven项目没有src/main/java目录和webapp目录问题

    这篇文章主要介绍了IDEA2020 创建maven项目没有src/main/java目录和webapp目录问题解决方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • 浅谈Java中方法参数传递的问题

    浅谈Java中方法参数传递的问题

    下面小编就为大家带来一篇浅谈Java中方法参数传递的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • SpringBoot项目部署到阿里云服务器的实现步骤

    SpringBoot项目部署到阿里云服务器的实现步骤

    本文主要介绍了SpringBoot项目部署到阿里云服务器的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06

最新评论