如何将GitHub Package Registry软件包添加为Gradle依赖项

时间:2019-08-06 09:42:24

标签: maven gradle github github-package-registry

因此,我有一个GitHub project,配置了程序包注册表。它有两个软件包:

Two packages published in Github Package Registry

软件包页面仅具有针对Maven的指令,此外,指令已损坏(maven install so57323260不是在Maven中添加依赖项的有效方法):

Package page with broken Maven instructions

问题是:如何在Gradle版本中添加that package

2 个答案:

答案 0 :(得分:6)

新答案

GitHub已发布了官方指南:Configuring Gradle for use with GitHub Packages


旧答案

首先,在您的Gradle构建配置中将Github Package Registry配置为Maven存储库:

build.gradle.kts:

repositories {
    jcenter()
    maven("https://maven.pkg.github.com/madhead") {
        credentials {
            username = "madhead"
            password = "<token>"
        }
    }
}

您可以在account settings page中生成令牌。

现在,添加类似的依赖项:

build.gradle.kts:

dependencies {
    implementation("so57323260:so57323260:1.0.0")
    implementation("so57323260:test:1.0.2")
}

此处groupId是存储库的名称,artifactId是已发布程序包的名称。

答案 1 :(得分:5)

对于担心个人访问令牌安全的人,官方指南建议通过Gradle属性或系统属性访问用户名和密码。

Step1:将USERNAME和TOKEN设置为系统属性(使用exportset),或者像这样在项目根文件夹下创建一个gradle.properties文件:

gpr.user=<USERNAME>
gpr.token=<TOKEN>

Step2:在 build.gradle 中添加带有身份验证的 Github 包注册表:

    repositories {
        maven {
            name = "GitHubPackages"
            url = uri("https://maven.pkg.github.com/OWNER/REPOSITORY")
            credentials {
                username = project.findProperty("gpr.user") ?: System.getenv("USERNAME")
                password = project.findProperty("gpr.token") ?: System.getenv("TOKEN")
            }
        }
    }

第三步:在build.gradle中添加你要消费的包:

dependencies {
    implementation 'com.example:package:version'
}

有关更多详细信息(包括如何配置 Maven),请参阅我在此处贡献的 Wiki 中的说明:https://github.com/GumTreeDiff/gumtree/wiki/Getting-Started