maven发布组件时认证

1、发布

mvn deploy 用来将项目生成的构件分发到远程Maven仓库。

本地Maven仓库的构件只能供当前用户使用,在分发到远程Maven仓库之后,所有能访问该仓库的用户都能使用你的构件。为此需要在项目的pom.xml中配置distributionManagement来指定Maven分发构件的位置,如下:(在setting.xml中不能指定distributionManagement)

<project>    
  ...    
  <distributionManagement>    
    <repository>    
      <id>nexus-releases</id>    
      <name>Nexus Release Repository</name>    
      <url>http://127.0.0.1:8080/nexus/content/repositories/releases/</url>    
    </repository>    
    <snapshotRepository>    
      <id>nexus-snapshots</id>    
      <name>Nexus Snapshot Repository</name>    
      <url>http://127.0.0.1:8080/nexus/content/repositories/snapshots/</url>    
    </snapshotRepository>    
  </distributionManagement>    
  ...    
</project>    

Maven区别对待release版本的构件和snapshot版本的构件,snapshot为开发过程中的版本,实时,但不稳定,release版本则比较稳定。Maven会根据你项目的版本来判断将构件分发到哪个仓库。注意:上述name标签可以省略

一般来说,分发构件到远程仓库需要认证,如果你没有配置任何认证信息,你往往会得到401错误。这个时候,如下在settings.xml中配置认证信息:

<settings>    
  ...    
  <servers>    
    <server>    
      <id>nexus-releases</id>    
      <username>admin</username>    
      <password>admin123</password>    
    </server>    
    <server>    
      <id>nexus-snapshots</id>    
      <username>admin</username>    
      <password>admin123</password>    
    </server>      
  </servers>    
  ...    
</settings>  

需要注意的是,settings.xml中server元素下id的值必须与POM中repository或snapshotRepository下id的值完全一致。将认证信息放到settings下而非POM中,是因为POM往往是它人可见的,而settings.xml是本地的。

2、获取组件:

某一个项目中如果依赖的库需要从某个repository中下载,可以在pom.xml中指定repository,也可以在setting.xml中指定repository。如果某台编译机器上maven的setting.xml不可编辑,就需要在项目的pom.xml中指定repository。

<repositories>
    	<repository>
    		  <id>zeus_tob</id>
		      <url>https://mirrors.abc.com/repository/maven/zeus_tob</url>
		      <releases>
		        <enabled>true</enabled>
		      </releases>
		      <snapshots>
		        <enabled>true</enabled>
		      </snapshots>
    	</repository>
</repositories>

说明:任何一个仓库声明的id必须是唯一的,尤其需要注意的是,Maven自带的中央仓库使用的id是central,如果其他的仓库声明也使用该id,就会覆盖中央仓库的配置。

1)updatePolicy和checksumPolicy:

对于releases和snapshots来说,除了enabled元素,还包含另外两个子元素updatePolicy和checksumPolicy:

<snapshots>
    <enabled>true</enabled>
    <checksumPolicy>ignore</checksumPolicy>
    <updatePolicy>daily</updatePolicy>
</snapshots>
  • updatePolicy:用来配置Maven从远程仓库检查更新的频率,默认值为daily,表示每天检查一次。其他可用的值包括:never-从不检查更新;always-每次构建都检查更新;interval:X-每隔X分钟检查一次更新。
  • checksumPolicy:用来配置Maven检查校验和文件的策略。当构件被部署到Maven仓库中时会同时部署对应的校验和文件。在下载构建的时候,Maven会验证校验和文件。当checksumPolicy的值为默认的warn时,Maven会在执行构建时输出警告信息。为fail时,Maven遇到校验和错误就让构建失败;ignore,使Maven完全忽略校验和错误。

2)认证:

组件在deploy到远程时通常需要认证;大部分远程仓库无须认证就可以访问,但有时候出于安全方面的考虑,我们需要提供认证信息才能访问一些远程仓库。

方法同deploy:settings.xml中server元素的id必须与POM中需要认证的repository元素的id完全一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赶路人儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值