更新时间:2024-01-23 GMT+08:00

配置发布依赖包到私有依赖库

配置说明

编译构建服务默认使用私有依赖库作为私有依赖下载源,如果需要将构建产物上传至私有依赖库供其他项目依赖使用,则需要添加此配置。

  • 软件发布库主要用于归档用以部署或其他用途的软件包。
  • 私有依赖库主要用于存储供其他项目依赖的工具包等。

    私有依赖仓库分为release仓库和snapshot仓库,两种仓库对应的使用场景为:

    • 对于以调试为目的发布的私有依赖包,一般会给依赖版本号增加-SNAPSHOT后缀(如:1.0.0-SNAPSHOT),执行发布操作时,此类依赖会自动发布到snapshot仓库,发布时无需更新版本号,构建命令中增加-U参数即可拉取最新版本。
    • 对于正式发布的私有依赖包,版本号中不可带-SNAPSHOT后缀(如:1.0.0),执行发布操作时,此类依赖会自动发布到release仓库,发布时必须更新版本号,否则会导致构建过程无法拉取最新依赖包。

使用时要务必注意区分,避免出现如“将依赖上传到软件发布库但是构建时无法下载”此类场景。

操作步骤

  1. 创建私有依赖库(如果已经创建,请忽略该步骤)。
  2. 使用Maven模板新建代码仓库
  3. 单击代码仓库名称,进入代码托管“文件”页,在“pom.xml”文件配置私有依赖坐标信息(groupId、artifactId、version)。

    修改准备构建的私有依赖项目,“pom文件”中指定坐标为:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
        <modelVersion>4.0.0</modelVersion> 
        <groupId>come.test.demo</groupId> 
        <artifactId>javaMavenDemo</artifactId> 
        <packaging>jar</packaging> 
        <version>1.0</version> 
        <name>maven_demo</name> 
        <url>http://maven.apache.org</url> 
        <dependencies> 
            <dependency> 
                <groupId>junit</groupId> 
                <artifactId>junit</artifactId> 
                <version>3.8.1</version> 
                <scope>test</scope> 
            </dependency> 
        </dependencies>
    

  4. Maven构建步骤中,展开“发布依赖包到CodeArts私有依赖库”,选择“配置所有pom”。

    • 不配置pom:表示无需发布私有依赖包到CodeArts私有依赖库。
    • 配置所有pom:表示在项目下所有“pom.xml”文件增加deploy配置,使用mvn deploy命令将构建出的依赖包上传到私有依赖仓库。

  5. 在命令窗口,使用“#”注释命令mvn package -Dmaven.test.skip=true -U -e -X -B

  6. 删除#mvn deploy -Dmaven.test.skip=true -U -e -X -B命令前的“#”

  7. 配置完成后执行构建任务。执行成功后即可将依赖包发布到私有依赖库。
  8. 单击导航栏制品仓库 > 私有依赖库,进入私有依赖库,搜索并查看上传的依赖。

    上传成功后,在其他项目添加如下坐标即可引用。

    1
    2
    3
    4
    5
    <dependency>
        <groupId>com.test.demo</groupId>
        <artifactId>javaMavenDemo</artifactId>
        <version>1.0</version>
    </dependency>