写点什么

Maven 进阶(三):配置多仓库

  • 2021 年 12 月 10 日
  • 本文字数:1766 字

    阅读完需:约 6 分钟

Maven进阶(三):配置多仓库

一、前言

maven的中央仓库很强大,绝大多数的jar都收录了。但也有未被收录的。遇到未收录的jar时,就会编译报错。


除了maven官方提供的仓库之外,也有很多其他的仓库。尽可能的将可信仓库添加几个,弥补maven官方仓库的不足。

二、多仓库配置方式一:全局多仓库设置

全局多仓库设置,是通过修改mavensetting文件实现。设置思路:在setting文件中添加多个profile(也可以在一个profile中包含很多个仓库),并激活(即使是只有一个可用的profile,也需要激活)。修改mavensetting文件,设置两个仓库(以此类推,可以添加多个):


<profiles>  <profile>      <!-- id必须唯一 -->      <id>myRepository1</id>      <repositories>          <repository>              <!-- id必须唯一 -->              <id>myRepository1_1</id>              <!-- 仓库的url地址 -->              <url>http://maven.aliyun.com/nexus/content/groups/public/</url>;              <releases>                  <enabled>true</enabled>              </releases>              <snapshots>                  <enabled>true</enabled>                  <updatePolicy>always</updatePolicy>              </snapshots>          </repository>      </repositories>  </profile>  <profile>      <!-- id必须唯一 -->      <id>myRepository2</id>      <repositories>          <repository>              <!-- id必须唯一 -->              <id>myRepository2_1</id>              <!-- 仓库的url地址 --><url>http://repository.jboss.org/nexus/content/groups/public-jboss/</url>;              <releases>                  <enabled>true</enabled>              </releases>              <snapshots>                  <enabled>true</enabled>                  <updatePolicy>always</updatePolicy>              </snapshots>          </repository>      </repositories>  </profile></profiles><activeProfiles>  <!-- 激活myRepository1 -->  <activeProfile>myRepository1</activeProfile>  <!-- 激活myRepository2 -->  <activeProfile>myRepository2</activeProfile></activeProfiles>
复制代码

三、多仓库配置方式二:在项目中添加多个仓库

在项目中添加多个仓库,是通过修改项目中的pom文件实现的。思路:在项目中pom文件的repositories节点(如果没有手动添加)下添加多个repository节点,每个repository节点是一个仓库。修改项目中pom文件,设置两个仓库(以此类推,可以添加多个):


<repositories>    <repository>        <!-- id必须唯一 -->        <id>jboss-repository</id>        <!-- 见名知意即可 -->        <name>jboss repository</name>        <!-- 仓库的url地址 -->        <url>http://repository.jboss.org/nexus/content/groups/public-jboss/</url>;    </repository>    <repository>        <!-- id必须唯一 -->        <id>aliyun-repository</id>        <!-- 见名知意即可 -->        <name>aliyun repository</name>        <!-- 仓库的url地址 -->        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>;    </repository></repositories>
复制代码


注:以上两种方式的id值均不可以为“central”。

四、拓展阅读

五、延伸阅读

5.1 问题描述

在启动Maven Web项目时,报“Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]”等错误。经排查,原因如下:tomcat版本太高的原因,为其配套的servlet-api.jar不匹配或项目工程lib下有低版本的servlet-api.jartomcat7以前的这个包没有getSessionCookieConfig这个方法,7 的包有这个方法,


解决方法,删除项目工程lib文件夹的低版本的servlet-api.jar,tomcatlib文件夹里用默认带的jar包。或者把tomcat换成版本 6。

5.2 解决方法

但是自己在尝试了之后,并没有解决问题。忽然自己想到是不是在重新导入项目之后Web项目没有进行相应的


propertiy -> Deployment Assembly -> add -> Java Build Path Entries -> Tomcat发布Web项目


一系列操作,尝试之后,果然问题迎刃而解。但是自己还是没有找到问题的根本原因所在。

发布于: 22 分钟前阅读数: 2
用户头像

No Silver Bullet 2021.07.09 加入

岂曰无衣 与子同袍

评论

发布
暂无评论
Maven进阶(三):配置多仓库