使用 Gradle 发布项目
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
使用 Azure Artifacts,可以从单个源有效地管理依赖项,并将各种类型的包存储在一个位置。 Azure Artifacts 使开发人员能够发布和使用来自不同源的包,并根据源的可见性设置共享它们。 本文介绍如何连接到 Azure Artifacts 源并使用 Gradle 发布包。
先决条件
如果还没有源,请创建一个源。
下载并安装 Gradle。
安装 Java 开发工具包(JDK)版本 8 或更高版本。
创建个人访问令牌
若要使用源进行身份验证,必须先创建包含打包 读取和写入 范围的个人访问令牌:
登录到 Azure DevOps 组织,然后导航到项目。
选择“ 用户设置”,然后选择“ 个人访问令牌”。
选择“ 新建令牌 ”并填写必填字段。 请务必选择“打包>读取和写入”范围。
完成操作后,选择“创建”。 复制令牌并将其保存在安全位置,因为下一步需要它。
项目设置
在设置项目之前,请确保已安装 Gradle,并且已将 Maven 设置插件添加到 build.gradle 文件,如下所示:
plugins {
id 'maven-publish'
}
配置 build.gradle
如果项目的根目录中不存在 build.gradle 文件,请创建一个新文件并将其命名为 build.gradle。
将以下部分添加到存储库和 publishing.存储库容器中的 build.gradle 文件:
maven { url 'https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/maven/v1' //for organization-scoped feeds use this format: 'https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/maven/v1' name '<FEED_NAME>' credentials(PasswordCredentials) authentication { basic(BasicAuthentication) } }
下面是 build.gradle 文件应如下所示的示例:
repositories {
mavenCentral()
maven {
url 'https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/maven/v1' //for organization-scoped feeds use this format: 'https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/maven/v1'
name '<FEED_NAME>'
credentials(PasswordCredentials)
authentication {
basic(BasicAuthentication)
}
}
}
publishing {
publications {
library(MavenPublication) {
from components.java
}
}
repositories {
maven {
url 'https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/maven/v1' //for organization-scoped feeds use this format: 'https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/maven/v1'
name '<FEED_NAME>'
credentials(PasswordCredentials)
authentication {
basic(BasicAuthentication)
}
}
}
}
配置 gradle.properties
打开位于主文件夹的 .gradle 目录中的 gradle.properties 文件(~/.gradle/gradle.properties)。 如果文件不存在,请创建一个新文件。
添加以下代码片段,将占位符替换为之前创建的源名称、组织名称和个人访问令牌。
# Substitute FEED_NAME with the same name specified as the 'name' of the maven repository in build.gradle. # The value of the username is arbitrary but should not be blank. [FEED_NAME]Username=[ORGANIZATION_NAME] [FEED_NAME]Password=[PERSONAL_ACCESS_TOKEN]
发布程序包
在项目目录中运行以下命令,将包发布到源:
gradle publish