Maven如何对远程仓库进行各种配置呢?

戚薇 Maven教程 发布时间:2022-07-17 19:09:01 阅读数:14093 1
下文笔者讲述maven的远程仓库配置简介说明,如下所示

远程仓库的配置

远程仓库是第三方新建的仓库,此时我们需在pom.xml中配置仓库信息即可
如:JBoss  Maven
  <!-- 配置远程仓库 -->
   <repositories>
	   <repository>
		   <id>jboss</id>
		   <name>JBoss Repository</name>
		   <url>http://repository.jboss.com/maven2/</url>
		   <releases>
			   <enabled>true</enabled>
			   <updatePolicy>daily</updatePolicy>
		  </releases>
		  <snapshots>
			  <enabled>false</enabled>
			  <checksumPolicy>warn</checksumPolicy>
		  </snapshots>
		  <layout>default</layout>
	  </repository>
  </repositories>
repository
   在repositories元素下
   可以使用repository子元素声明一个或者多个远程仓库
id
  仓库声明的唯一id
   尤其需要注意的是
   Maven自带的中央仓库使用的id为central
   如果其他仓库声明也使用该id
   就会覆盖中央仓库的配置。
name
   仓库的名称 

url
  远程仓库地址
  该地址都基于http协议
  Maven用户都可以在浏览器中打开仓库地址浏览构件。

releases和snapshots
  用于控制Maven对于发布版构件和快照版构件的下载权限
   需要注意的是enabled子元素
   该例中releases的enabled值为true
   表示开启JBoss仓库的发布版本下载支持
   而snapshots的enabled值为false
   表示关闭JBoss仓库的快照版本的下载支持
  根据该配置
   Maven只会从JBoss仓库下载发布版的构件,而不会下载快照版的构件。
layout
   元素值default表示仓库的布局是Maven2及Maven3的默认布局
    而不是Maven1的布局。基本不会用到Maven1的布局 
其他
  对于releases和snapshots来说
   除了enabled
  它们还包含另外两个子元素updatePolicy和checksumPolicy

元素updatePolicy
   用来配置Maven从远处仓库检查更新的频率
    默认值是daily
    表示Maven每天检查一次
    其他可用的值包括
       never-从不检查更新
       always-每次构建都检查更新
       interval:X-每隔X分钟检查一次更新(X为任意整数)。

元素checksumPolicy
    用来配置Maven检查校验和文件的策略
    当构建被部署到Maven仓库中时,会同时部署对应的检验和文件
     在下载构件的时候,Maven会验证校验和文件
      如果校验和验证失败,当checksumPolicy的值为默认的warn时,Maven会在执行构建时输出警告信息
      其他可用的值包括
      fail-Maven遇到校验和错误就让构建失败
      ignore-使Maven完全忽略校验和错误 

远程仓库的认证

公共的远程仓库无须认证就可以直接访问
  但我们在平时的开发中往往会架设自己的Maven远程仓库
  出于安全方面的考虑
  我们需要提供认证信息才能访问这样的远程仓库
   配置认证信息和配置远程仓库不同
   远程仓库可以直接在pom.xml中配置
    但是认证信息必须配置在settings.xml文件中
   这是因为pom往往是被提交到代码仓库中供所有成员访问的
   settings.xml一般只存在于本机
     在settings.xml中配置认证信息更为安全。
<settings>
   ...
   <!--配置远程仓库认证信息-->
   <servers>
	   <server>
		   <id>releases</id>
		   <username>admin</username>
		   <password>admin123</password>
	   </server>
  </servers>
  ...
</settings>

参数说明:
    id为releases的远程仓库认证信息
  Maven使用settings.xml文件中的servers元素及其子元素server配置仓库认证信息
   认证用户名为admin,认证密码为admin123

settings.xml中server元素的id必须与pom.xml中需要认证的repository元素的id完全一致
  此id将认证信息与仓库配置进行关联

部署构件至远程仓库

可将本地的jar包,打包至远程仓库中
Maven可对项目进行编译、测试、打包之外
还可将项目生成的构件部署到远程仓库中
此时我们需配置pom.xml文件
配置distributionManagement元素
<distributionManagement>
	   <repository>
		   <id>releases</id>
		   <name>public</name>
		   <url>http://59.50.95.66:8081/nexus/content/repositories/releases</url>
	   </repository>
	   <snapshotRepository>
		   <id>snapshots</id>
		   <name>Snapshots</name>
		  <url>http://59.50.95.66:8081/nexus/content/repositories/snapshots</url>
	  </snapshotRepository>
</distributionManagement>

参数说明:
   distributionManagement包含repository和snapshotRepository子元素
    前者表示发布版本(稳定版本)构件的仓库
    后者表示快照版本(开发测试版本)的仓库
    这两个元素都需要配置id、name和url,id为远程仓库的唯一标识

注意事项:
    maven配置完毕后,可使用mvn clean deploy 即可部署jar至远程仓库中

配置远程仓库的镜像

如果仓库X可以提供仓库Y存储的所有内容
  那么就可以认为X是Y的一个镜像
   换句话说,任何一个可以从仓库Y获得的构件,都能够从它的镜像中获取
  例:http://maven.java265.com/content/groups/public/ 是中央仓库http://repo1.maven.org/maven2/ 在中国的镜像
    由于地理位置的因素,该镜像往往能够提供比中央仓库更快的服务
	因此,可以配置Maven使用该镜像来替代中央仓库
编辑settings.xml,代码如下:
<mirrors>
  <mirror>
   <id>maven.oschina.net</id>
   <name>maven mirror in China</name>
   <url>http://maven.java265.com/content/groups/public/</url>
   <mirrorOf>central</mirrorOf>
 </mirror>
</mirrors>

注意事项:
   mirrorOf的值为central
    表示该配置为中央仓库的镜像,任何对于中央仓库的请求都会转至该镜像
   用户也可以使用同样的方法配置其他仓库的镜像
   id表示镜像的唯一标识符,name表示镜像的名称,url表示镜像的地址。
  
  在日常镜像配置中,我们经常使用maven私服,并在私服中代理所有的外部仓库
  此时我们就需在setting.xml中配置私服

 <!--配置私服镜像-->
 <mirrors> 
     <mirror>  
         <id>nexus</id>  
         <name>internal nexus repository</name>  
         <url>http://192.168.8.10:8081/nexus/content/groups/public/</url>  
         <mirrorOf>*</mirrorOf>  
     </mirror>  
 </mirrors>

注意事项:
   <mirrorOf>的值为星号
     表示该配置是所有Maven仓库的镜像
    任何对于远程仓库的请求都会被转至http://192.168.8.10:8081/nexus/content/groups/public/
    如果该镜像仓库需要认证,则配置一个id为nexus的认证信息即可

可用的Maven镜像仓库列表

下表是笔者收集的市面上常见的可用的maven私服列表
由于笔者身在国外,所以没有列表国内的taobao 私服,请见谅
 
  <mirror>    
	 <id>repo2</id>    
	 <mirrorOf>central</mirrorOf>    
	 <name>Human Readable Name for this Mirror.</name>    
	 <url>http://repo2.maven.org/maven2/</url>    
   </mirror>

   <mirror>    
	 <id>ui</id>    
	<mirrorOf>central</mirrorOf>    
	<name>Human Readable Name for this Mirror.</name>    
   <url>http://uk.maven.org/maven2/</url>    
  </mirror>


  <mirror>    
	<id>ibiblio</id>    
	<mirrorOf>central</mirrorOf>    
	<name>Human Readable Name for this Mirror.</name>    
   <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>    
  </mirror>

 <mirror>    
   <id>jboss-public-repository-group</id>    
   <mirrorOf>central</mirrorOf>    
   <name>JBoss Public Repository Group</name>    
  <url>http://repository.jboss.org/nexus/content/groups/public</url>    
 </mirror>

 <mirror>    
   <id>JBossJBPM</id>   
    <mirrorOf>central</mirrorOf>   
    <name>JBossJBPM Repository</name>   
    <url>https://repository.jboss.org/nexus/content/repositories/releases/</url>  
 </mirror>

jar包坐标检索方法

我们可进入MVNrepository:http://mvnrepository.com/
搜索我们所需的jar包即可
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/Maven/202207/3992.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者