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
Necesitas un token de acceso para publicar, instalar y eliminar paquetes privados, internos y públicos.
Puedes usar un personal access token para autenticarte en GitHub Packages o en la API de GitHub Enterprise Server. Cuando creas un personal access token, puedes asignar al token diferentes ámbitos en función de tus necesidades. Para obtener más información sobre los ámbitos relacionados con paquetes para unpersonal access token, consulta "Acerca de los permisos para los Paquetes de GitHub".
Para autenticarte en un registro del GitHub Packages dentro de un flujo de trabajo de GitHub Actions, puedes utilizar:
GITHUB_TOKEN
para publicar los paquetes asociados con el repositorio del flujo de trabajo.- Un personal access token con, al menos, ámbito de
read:packages
para instalar los paquetes asociados con otros repositorios privados (a los cuales no puede accederGITHUB_TOKEN
).
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".
Autenticación con un personal access token
Debes utilizar un personal access token con los ámbitos adecuados para publicar e instalar paquetes en GitHub Packages. Para más información, vea "Acerca de GitHub Packages".
Si quieres autenticar en GitHub Packages con Apache Maven, edita el archivo ~/.m2/settings.xml para incluir tu personal access token. Crea un nuevo archivo ~/.m2/settings.xml si no existe uno.
En la etiqueta servers
, agrega una etiqueta secundaria server
con id
. Reemplaza USERNAME por tu nombre de usuario de GitHub y TOKEN por tu personal access token.
En la etiqueta repositories
, configura un repositorio asignando el id
del repositorio al id
que has agregado en la etiqueta server
que contiene las credenciales. Reemplaza HOSTNAME por el nombre de host de your GitHub Enterprise Server instance, y OWNER por el nombre de la cuenta de usuario o de la organización que posee el 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.
Si quieres interactuar con varios repositorios, puedes agregar cada repositorio a un elemento secundario repository
independiente en la etiqueta repositories
, asignando el id
de cada uno a las credenciales de la etiqueta servers
.
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.
Si en la instancia se ha habilitado el aislamiento de subdominios:
<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
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<activeProfiles>
<activeProfile>github</activeProfile>
</activeProfiles>
<profiles>
<profile>
<id>github</id>
<repositories>
<repository>
<id>central</id>
<url>https://repo1.maven.org/maven2</url>
</repository>
<repository>
<id>github</id>
<url>https://maven.HOSTNAME/OWNER/REPOSITORY</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<servers>
<server>
<id>github</id>
<username>USERNAME</username>
<password>TOKEN</password>
</server>
</servers>
</settings>
Si en la instancia se deshabilitado el aislamiento de subdominios:
<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
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<activeProfiles>
<activeProfile>github</activeProfile>
</activeProfiles>
<profiles>
<profile>
<id>github</id>
<repositories>
<repository>
<id>central</id>
<url>https://repo1.maven.org/maven2</url>
</repository>
<repository>
<id>github</id>
<url>HOSTNAME/_registry/maven/OWNER/REPOSITORY</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<servers>
<server>
<id>github</id>
<username>USERNAME</username>
<password>TOKEN</password>
</server>
</servers>
</settings>
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 un repositorio denominado OWNER/test
.
Si quieres publicar varios paquetes en el mismo repositorio, puedes incluir la dirección URL del repositorio en el elemento <distributionManagement>
del archivo pom.xml. GitHub coincidirá con el repositorio según ese campo. Dado que el nombre del repositorio también forma parte del elemento distributionManagement
, no hay pasos adicionales para publicar varios paquetes en el mismo repositorio.
Para obtener más información sobre cómo crear un paquete, consulta la documentación de maven.apache.org.
-
Edita el elemento
distributionManagement
del archivo pom.xml ubicado en el directorio del paquete. Reemplaza HOSTNAME por el nombre de host de your GitHub Enterprise Server instance,OWNER
por el nombre de la cuenta de usuario o de la organización que posee el repositorio yREPOSITORY
por el nombre del repositorio que contiene el proyecto.Si tu instancia tiene habilitado el aislamiento de subdominio:
<distributionManagement> <repository> <id>github</id> <name>GitHub OWNER Apache Maven Packages</name> <url>https://maven.HOSTNAME/OWNER/REPOSITORY</url> </repository> </distributionManagement>
If your instance has subdomain isolation disabled:
<distributionManagement> <repository> <id>github</id> <name>GitHub OWNER Apache Maven Packages</name> <url>https://HOSTNAME/_registry/maven/OWNER/REPOSITORY</url> </repository> </distributionManagement>
-
Publish the package.
$ mvn deploy
Después de que publiques un paquete, puedes verlo en GitHub. Para más información, vea "Visualización de paquetes".
Instalación de un paquete
Para instalar un paquete de Apache Maven desde GitHub Packages, edita el archivo pom.xml para incluir el paquete como una dependencia. Si quieres instalar paquetes desde más de un repositorio, agrega una etiqueta repository
para cada uno. Para obtener más información sobre el uso de un archivo pom.xml en el proyecto, consulta "Introducción a POM" en la documentación de Apache Maven.
-
Autentícate en GitHub Packages. Para obtener más información, vea "Autenticación en GitHub Packages".
-
Agrega las dependencias del paquete al elemento
dependencies
del archivo pom.xml del proyecto, reemplazandocom.example:test
por el paquete.<dependencies> <dependency> <groupId>com.example</groupId> <artifactId>test</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency> </dependencies>
-
Instala el paquete.
$ mvn install