Nexus Maven Repositories

文章目录

    • Maven私库格式
      • Version policy--版本策略
        • Release
        • Snapshot
        • Mixed
      • Layout policy-- 结构策略
    • 私库结构
    • Settings.xml
    • 项目如何发布到私库?
    • 私库管理规范
    • Reference List

Maven私库格式

maven规定了一个仓库标准,Central仓库是最大的Maven在线仓库,它遵守Maven仓库标准用于很多开源项目的发布。

Version policy–版本策略

Release

发布稳定版本的jar包,maven central用的是这种。

Snapshot

snapshot仓库适合持续开发。这些jar包名称一般以-SNAPSHOT结尾。这种仓库允许重复上传相同版本号的jar包,区别与release仓库一旦上传jar包将不可更改。

Mixed

混合类型的仓库可以部署release包和snapshot包。

Layout policy-- 结构策略

Maven制定了标准的目录结构和文件命名,但是因为历史原因,一些构建工具比如sbt或者自定义开发的构建工具没有遵循这些标准。为了保持兼容性

  • Permissive
    配置Permissive策略允许仓库的assets(上传的artifact)违反标准
  • Strict
    上传的artifact必须遵守标准。

私库结构

私库分类分成三种,proxy,hosted,group。三者之间的关系如下:
Nexus Maven Repositories_第1张图片

Settings.xml

settings.xml是全局配置,配置从私库拉取依赖。


<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
     https://maven.apache.org/xsd/settings-1.0.0.xsd">
  
  <interactiveMode/>
  <offline/>
  <pluginGroups/>
   <servers>
    <server>
      <id>nexusid>
      
      <username>adminusername>
      <password>admin123password>
    server>
  servers>
  <mirrors>
  	<mirror>
      
      <id>nexusid>
      <mirrorOf>*mirrorOf>
      <url>http://localhost:8081/repository/maven-public/url>
    mirror>
  mirrors>
  
  <proxies/>
  <profiles>
    <profile>
      <id>nexusid>
      
      
      <repositories>
        <repository>
          <id>centralid>
          <url>http://centralurl>
          <releases><enabled>trueenabled>releases>
          <snapshots><enabled>trueenabled>snapshots>
        repository>
      repositories>
     <pluginRepositories>
        <pluginRepository>
          <id>centralid>
          <url>http://centralurl>
          <releases><enabled>trueenabled>releases>
          <snapshots><enabled>trueenabled>snapshots>
        pluginRepository>
      pluginRepositories>
    profile>
  profiles>
  <activeProfiles>
    
    <activeProfile>nexusactiveProfile>
  activeProfiles>
settings>

项目如何发布到私库?

<project>

<distributionManagement>
    <repository>
      <id>nexusid>
      <name>Releasesname>
      <url>http://localhost:8081/repository/maven-releasesurl>
    repository>
    <snapshotRepository>
      <id>nexusid>
      <name>Snapshotname>
      <url>http://localhost:8081/repository/maven-snapshotsurl>
    snapshotRepository>
  distributionManagement>
project>

私库管理规范

Nexus Maven Repositories_第2张图片
组织内部按照角色划分为多个私库,如图所示,代理私库从在线仓库下载,经过CI工具发布到Stage仓库。Stage仓库用于测试jar包稳定性,最终经过稳定性测试的jar包放到生产私库中。

Reference List

  1. https://help.sonatype.com/repomanager3/formats/maven-repositories

你可能感兴趣的:(构建工具)