Skip to main content

Esta versión de GitHub Enterprise se discontinuó el 2022-10-12. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener rendimiento mejorado, seguridad mejorada y nuevas características, actualice a la versión más reciente de GitHub Enterprise. Para obtener ayuda con la actualización, póngase en contacto con el soporte técnico de GitHub Enterprise.

Trabajar con el registro de Gradle

Puedes configurar a Gradle para que publique paquetes en el registro de Gradle del GitHub Packages y para utilizar los paquetes almacenados en el GitHub Packages como dependencias en un proyecto de Java.

GitHub Packages está disponible con GitHub Free, GitHub Pro, GitHub Free para organizaciones, GitHub Team, GitHub Enterprise Cloud, GitHub Enterprise Server 3.0 o superior y GitHub AE. Para obtener más información sobre cómo actualizar la instancia GitHub Enterprise Server, consulta «Acerca de las actualizaciones a nuevas versiones» y el Asistente de mejora para encontrar la ruta de actualización de la versión actual.

Nota: Este tipo de paquete podría no estar disponible para su instancia, ya que los administradores de sitio pueden habilitar o inhabilitar cada tipo de paquete compatible. Para obtener más información, consulte "Configurar la compatibilidad del ecosistema de paquetes para tu empresa".

Autenticar a GitHub Packages

You need an access token to publish, install, and delete private, internal, and public packages.

You can use a personal access token (PAT) to authenticate to GitHub Packages or the GitHub Enterprise Server API. When you create a personal access token, you can assign the token different scopes depending on your needs. For more information about packages-related scopes for a PAT, see "About permissions for GitHub Packages."

To authenticate to a GitHub Packages registry within a GitHub Actions workflow, you can use:

  • GITHUB_TOKEN to publish packages associated with the workflow repository.
  • a PAT with at least packages:read scope to install packages associated with other private repositories (which GITHUB_TOKEN can't access).

Para más información sobre el uso de GITHUB_TOKEN en flujos de trabajo de GitHub Actions, vea "Autenticación en un flujo de trabajo". Para más información sobre el uso de GITHUB_TOKEN con Gradle, vea "Publicación de paquetes de Java con Gradle".

Autenticarte con un token de acceso personal

Debes utilizar un token de acceso personal con los alcances adecuados para publicar e instalar paquetes en GitHub Packages. Para más información, vea "Acerca de GitHub Packages".

Se puede autenticar en GitHub Packages con Gradle mediante Gradle Groovy o Kotlin DSL si edita el archivo build.gradle (Gradle Groovy) o build.gradle.kts (Kotlin DSL) para incluir el token de acceso personal. También puedes configurar Gradle Groovy y Kotlin DSL para que reconozcan un paquete único o múltiples paquetes en un repositorio.

Reemplace REGISTRY-URL con la URL del registro Maven de la instancia. Si en la instancia se ha habilitado el aislamiento de subdominios, use maven.HOSTNAME. Si en la instancia se ha deshabilitado el aislamiento de subdominios, use HOSTNAME/_registry/maven. En cualquier caso, reemplace HOSTNAME por el nombre de host de la instancia de GitHub Enterprise Server.

Reemplace USERNAME por el nombre de usuario de GitHub, TOKEN por el token de acceso personal, REPOSITORY por el nombre del repositorio que contiene el paquete que quiera publicar y OWNER por el nombre de la cuenta de usuario o de organización en GitHub propietaria del repositorio. Dado que las letras mayúsculas no son compatibles, debes usar minúsculas para el propietario del repositorio si el nombre de usuario o el nombre de la organización de GitHub contiene letras mayúsculas.

Nota: GitHub Packages admite las versiones� SNAPSHOT de Apache Maven. A fin de usar el repositorio de GitHub Packagespara descargar artefactos de SNAPSHOT, habilite SNAPSHOTS en el POM del proyecto consumidor o en el archivo ~/.m2/settings.xml. Para obtener un ejemplo, vea "Configuración de Apache Maven para su uso con GitHub Packages".

Ejemplo de uso de Gradle Groovy para un paquete único en un repositorio

plugins {
    id("maven-publish")
}
publishing {
    repositories {
        maven {
            name = "GitHubPackages"
            url = uri("https://REGISTRY-URL/OWNER/REPOSITORY")
            credentials {
                username = project.findProperty("gpr.user") ?: System.getenv("USERNAME")
                password = project.findProperty("gpr.key") ?: System.getenv("TOKEN")
            }
        }
    }
    publications {
        gpr(MavenPublication) {
            from(components.java)
        }
    }
}

Ejemplo usando Gradle Groovy para múltiples paquetes en el mismo repositorio

plugins {
    id("maven-publish") apply false
}
subprojects {
    apply plugin: "maven-publish"
    publishing {
        repositories {
            maven {
                name = "GitHubPackages"
                url = uri("https://REGISTRY-URL/OWNER/REPOSITORY")
                credentials {
                    username = project.findProperty("gpr.user") ?: System.getenv("USERNAME")
                    password = project.findProperty("gpr.key") ?: System.getenv("TOKEN")
                }
            }
        }
        publications {
            gpr(MavenPublication) {
                from(components.java)
            }
        }
    }
}

Ejemplo de uso de Kotlin DSL para un paquete único en el mismo repositorio

plugins {
    `maven-publish`
}
publishing {
    repositories {
        maven {
            name = "GitHubPackages"
            url = uri("https://REGISTRY-URL/OWNER/REPOSITORY")
            credentials {
                username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME")
                password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN")
            }
        }
    }
    publications {
        register<MavenPublication>("gpr") {
            from(components["java"])
        }
    }
}

Ejemplo de uso de Kotlin DSL para múltiples paquetes en el mismo repositorio

plugins {
    `maven-publish` apply false
}
subprojects {
    apply(plugin = "maven-publish")
    configure<PublishingExtension> {
        repositories {
            maven {
                name = "GitHubPackages"
                url = uri("https://REGISTRY-URL/OWNER/REPOSITORY")
                credentials {
                    username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME")
                    password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN")
                }
            }
        }
        publications {
            register<MavenPublication>("gpr") {
                from(components["java"])
            }
        }
    }
}

Publicación de un paquete

Predeterminadamente, GitHub publica el paquete en un repositorio existente con el mismo nombre que éste. Por ejemplo, GitHub publicará un paquete denominado com.example.test en el repositorio OWNER/test de GitHub Packages.

Después de que publiques un paquete, puedes verlo en GitHub. Para más información, vea "Visualización de paquetes".

  1. Autentícate en GitHub Packages. Para obtener más información, vea "Autenticación en GitHub Packages".

  2. Después de crear tu paquete, puedes publicar el paquete.

    $ gradle publish

Utilizar un paquete publicado

Para utiliza run paquete publicado del GitHub Packages, agrégalo como una dependencia y luego agrega el repositorio a tu proyecto. Para más información, vea "Declaración de dependencias" en la documentación de Gradle.

  1. Autentícate en GitHub Packages. Para obtener más información, vea "Autenticación en GitHub Packages".

  2. Agregue las dependencias del paquete al archivo build.gradle (Gradle Groovy) o al archivo build.gradle.kts (Kotlin DSL).

    Ejemplo utilizando Gradle Groovy:

    dependencies {
        implementation 'com.example:package'
    }

    Ejemplo de uso de Kotlin DSL:

    dependencies {
        implementation("com.example:package")
    }
  3. Agregue el repositorio al archivo build.gradle (Gradle Groovy) o al archivo build.gradle.kts (Kotlin DSL).

    Ejemplo utilizando Gradle Groovy:

    repositories {
        maven {
            url = uri("https://REGISTRY-URL/OWNER/REPOSITORY")
            credentials {
                username = project.findProperty("gpr.user") ?: System.getenv("USERNAME")
                password = project.findProperty("gpr.key") ?: System.getenv("TOKEN")
            }
        }
    }

    Ejemplo de uso de Kotlin DSL:

    repositories {
        maven {
            url = uri("https://REGISTRY-URL/OWNER/REPOSITORY")
            credentials {
                username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME")
                password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN")
            }
        }
    }

Información adicional