Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Solicitud de paquetes de Maven desde conexiones ascendentes y externas
Importación de nombres de activos estándar
Al importar una versión de paquete de Maven desde un repositorio público, como Maven Central, AWS CodeArtifact intenta importar todos los activos de esa versión de paquete. Como se describe en Solicitar una versión de paquete con repositorios ascendentes, la importación se produce cuando:
-
Un cliente solicita un activo de Maven desde un repositorio. CodeArtifact
-
La versión del paquete aún no está presente en el repositorio ni en sus fuentes de distribución.
-
Hay una conexión externa accesible a un repositorio público de Maven.
Aunque es posible que el cliente solo haya solicitado un activo, CodeArtifact intenta importar todos los activos que encuentra para esa versión del paquete. La forma en que CodeArtifact descubre qué activos están disponibles para una versión de paquete de Maven depende del repositorio público en particular. Algunos repositorios públicos de Maven admiten la solicitud de una lista de activos, pero otros no. Para los repositorios que no proporcionan una forma de enumerar los activos, CodeArtifact genera un conjunto de nombres de activos que es probable que existan. Por ejemplo, cuando se solicite cualquier activo de la versión junit 4.13.2
del paquete Maven, CodeArtifact intentará importar los siguientes activos:
junit-4.13.2.pom
junit-4.13.2.jar
junit-4.13.2-javadoc.jar
junit-4.13.2-sources.jar
Importación de nombres de activos no estándar
Cuando un cliente de Maven solicita un activo que no coincide con uno de los patrones descritos anteriormente, CodeArtifact comprueba si ese activo está presente en el repositorio público. Si el activo está presente, se importará y se añadirá al registro de versiones del paquete existente, si existe alguno. Por ejemplo, la versión com.android.tools.build:aapt2
7.3.1-8691043
del paquete Maven contiene los siguientes activos:
aapt2-7.3.1-8691043.pom
aapt2-7.3.1-8691043-windows.jar
aapt2-7.3.1-8691043-osx.jar
aapt2-7.3.1-8691043-linux.jar
Cuando un cliente solicita el archivo POM y no puede enumerar los activos de la versión del paquete, el POM será el único activo importado. CodeArtifact Esto se debe a que ninguno de los demás activos coincide con los patrones de nombres de activos estándar. Sin embargo, cuando el cliente solicite uno de los activos del JAR, ese activo se importará y se agregará a la versión del paquete existente almacenada en ella CodeArtifact. Las versiones de los paquetes tanto en el repositorio más avanzado (el repositorio en el que el cliente realizó la solicitud) como en el repositorio con la conexión externa adjunta se actualizarán para incluir el nuevo activo, tal y como se describe en Retención de paquetes de repositorios ascendentes.
Normalmente, una vez que la versión de un paquete se conserva en un CodeArtifact repositorio, no se ve afectada por los cambios en los repositorios anteriores. Para obtener más información, consulte Retención de paquetes de repositorios ascendentes. Sin embargo, el comportamiento de los activos de Maven con nombres no estándar descritos anteriormente es una excepción a esta regla. Si bien la versión posterior del paquete no cambiará sin que un cliente solicite un activo adicional, en esta situación, la versión del paquete retenido se modifica después de ser retenida inicialmente y, por lo tanto, no es inmutable. Este comportamiento es necesario porque, de lo contrario, no se podría acceder a los activos de Maven con nombres no estándar. CodeArtifact Este comportamiento también se activa si se añaden a una versión de paquete de Maven en un repositorio público después de conservar la versión del paquete en un repositorio. CodeArtifact
Comprobar el origen de los activos
Al agregar un nuevo activo a una versión de paquete de Maven previamente retenida, CodeArtifact confirma que el origen de la versión de paquete retenida es el mismo que el origen del nuevo activo. Esto evita crear una versión de paquete «mixta» en la que los diferentes activos se originen en diferentes repositorios públicos. Sin esta comprobación, podría producirse una mezcla de activos si la versión de un paquete de Maven se publica en más de un repositorio público y esos repositorios forman parte del gráfico ascendente de un CodeArtifact repositorio.
Importación de nuevos activos y el estado de las versiones de los paquetes en los repositorios originales
El estado de las versiones de paquetes de los repositorios ascendentes puede impedir que se conserven esas versiones en los repositorios CodeArtifact descendentes.
Por ejemplo, supongamos que un dominio tiene tres repositorios: repo-A
, repo-B
y repo-C
, donde repo-B
es una fuente ascendente de repo-A
y repo-C
ascendente de repo-B
.
La versión de paquete 7.3.1
del paquete Maven com.android.tools.build:aapt2
está presente en repo-B
y tiene un estado de Published
. No está presente en repo-A
. Si un cliente solicita un activo de esta versión de paquete de repo-A
, la respuesta será 200 (OK) y se conservará la versión 7.3.1
del paquete Maven en repo-A
. Sin embargo, si el estado de la versión del paquete 7.3.1
en repo-B
es Archived
o Disposed
, la respuesta será 404 (No encontrado) porque los activos de las versiones del paquete en esos dos estados no se pueden descargar.
Tenga en cuenta que si configura el control de origen del paquete como upstream=BLOCK
en com.android.tools.build:aapt2
, repo-A
, repo-B
y repo-C
evitarán que se obtengan nuevos recursos para todas las versiones de ese paquete de repo-A
, independientemente del estado de la versión del paquete.