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.
Uso de sumas de comprobación de Maven
Cuando se publica un artefacto de Maven en un repositorio de AWS CodeArtifact, la suma de comprobación asociada a cada activo o archivo del paquete se utiliza para validar la carga. Algunos ejemplos de activos son los archivos jar, pom y war. Para cada activo, el artefacto de Maven contiene varios archivos de suma de comprobación que utilizan el nombre del activo con una extensión adicional, como md5
o sha1
. Por ejemplo, los archivos de suma de comprobación de un archivo denominado my-maven-package.jar
podrían ser my-maven-package.jar.md5
y my-maven-package.jar.sha1
.
nota
Maven usa el término artifact
. En esta guía, un paquete de Maven es lo mismo que un artefacto de Maven. Para obtener más información, consulte paquete AWS CodeArtifact.
Almacenamiento de sumas de comprobación
CodeArtifact no almacena las sumas de comprobación de Maven como activos. Esto significa que las sumas de comprobación no aparecen como activos individuales en la salida de la API ListPackageVersionAssets. En cambio, las sumas de comprobación calculadas por CodeArtifact están disponibles para cada activo en todos los tipos de suma de comprobación compatibles. Por ejemplo, parte de la respuesta al llamar a ListPackageVersionAssets en la versión del paquete Maven commons-lang:commons-lang 2.1
es:
{ "name": "commons-lang-2.1.jar", "size": 207723, "hashes": { "MD5": "51591549f1662a64543f08a1d4a0cf87", "SHA-1": "4763ecc9d78781c915c07eb03e90572c7ff04205", "SHA-256": "2ded7343dc8e57decd5e6302337139be020fdd885a2935925e8d575975e480b9", "SHA-512": "a312a5e33b17835f2e82e74ab52ab81f0dec01a7e72a2ba58bb76b6a197ffcd2bb410e341ef7b3720f3b595ce49fdd9994ea887ba08ff6fe21b2c714f8c405af" } }, { "name": "commons-lang-2.1.pom", "size": 9928, "hashes": { "MD5": "8e41bacdd69de9373c20326d231c8a5d", "SHA-1": "a34d992202615804c534953aba402de55d8ee47c", "SHA-256": "f1a709cd489f23498a0b6b3dfbfc0d21d4f15904791446dec7f8a58a7da5bd6a", "SHA-512": "1631ce8fe4101b6cde857f5b1db9b29b937f98ba445a60e76cc2b8f2a732ff24d19b91821a052c1b56b73325104e9280382b2520edda4e7696698165c7e09161" } }, { "name": "maven-metadata.xml", "size": 121, "hashes": { "MD5": "11bb3d48d984f2f49cea1e150b6fa371", "SHA-1": "7ef872be17357751ce65cb907834b6c5769998db", "SHA-256": "d04d140362ea8989a824a518439246e7194e719557e8d701831b7f5a8228411c", "SHA-512": "001813a0333ce4b2a47cf44900470bc2265ae65123a8c6b5ac5f2859184608596baa4d8ee0696d0a497755dade0f6bf5e54667215a06ceae1effdfb7a8d30f88" } }
Aunque las sumas de comprobación no se almacenan como activos, los clientes de Maven pueden publicar y descargar las sumas de comprobación en las ubicaciones esperadas. Por ejemplo, si commons-lang:commons-lang 2.1
estuviera en un repositorio llamado maven-repo
, la ruta URL de la suma de comprobación SHA-256 del archivo JAR sería:
/maven/maven-repo/commons-lang/commons-lang/2.1/commons-lang-2.1.jar.sha256
Si está cargando paquetes de Maven existentes (por ejemplo, paquetes previamente almacenados en Amazon S3) a CodeArtifact mediante un cliente HTTP genérico, por ejemplo curl
, no es necesario cargar las sumas de comprobación. CodeArtifact los generará automáticamente. Si desea comprobar que los activos se han cargado correctamente, puede utilizar la operación de la API ListPackageVersionAssets para comparar las sumas de comprobación de la respuesta con los valores de las sumas de comprobación originales de cada activo.
La suma de comprobación no coincide durante la publicación
Además de los activos y las sumas de comprobación, los artefactos de Maven también contienen un archivo maven-metadata.xml
. La secuencia de publicación normal de un paquete de Maven es que todos los activos y las sumas de comprobación se carguen primero y, a continuación, se cargue maven-metadata.xml
. Por ejemplo, la secuencia de publicación de la versión commons-lang 2.1
del paquete Maven descrita anteriormente, suponiendo que el cliente estuviera configurado para publicar archivos de suma de comprobación SHA-256, sería:
PUT commons-lang-2.1.jar PUT commons-lang-2.1.jar.sha256 PUT commons-lang-2.1.pom PUT commons-lang-2.1.pom.sha256 PUT maven-metadata.xml PUT maven-metadata.xml.sha256
Al cargar el archivo de suma de control de un activo, como un archivo JAR, la solicitud de carga de la suma de control fallará con una respuesta de 400 (solicitud errónea) si no coincide el valor de la suma de control cargado y el valor de la suma de comprobación calculado por CodeArtifact. Si el activo correspondiente no existe, la solicitud fallará y generará una respuesta 404 (no encontrado). Para evitar este error, primero debe cargar el activo y, a continuación, cargar la suma de comprobación.
Cuando maven-metadata.xml
se carga, CodeArtifact normalmente cambia el estado de la versión del paquete Maven de Unfinished
a Published
. Si se detecta una discrepancia en la suma de comprobación para algún activo, CodeArtifact devolverá un 400 (solicitud errónea) en respuesta a la solicitud de publicación maven-metadata.xml
. Este error puede provocar que el cliente deje de cargar los archivos para esa versión del paquete. Si esto ocurre y el archivo maven-metadata.xml
no se carga, no se podrá descargar ningún activo de la versión del paquete que ya se haya cargado. Esto se debe a que el estado de la versión del paquete no está establecido en Published
y permanece Unfinished
.
CodeArtifact permite agregar más activos a una versión del paquete Maven incluso después de que se haya cargado maven-metadata.xml
y el estado de la versión del paquete se haya establecido en Published
. En este estado, una solicitud para cargar un archivo de suma de comprobación que no coincida también fallará y recibirá una respuesta de 400 (solicitud errónea). Sin embargo, dado que el estado de la versión del paquete ya está establecido en Published
, puede descargar cualquier recurso del paquete, incluidos aquellos en los que no se pudo cargar el archivo de suma de comprobación. Al descargar una suma de comprobación para un activo en el que no se pudo cargar el archivo de suma de comprobación, el valor de la suma de comprobación que reciba el cliente será el valor de la suma de comprobación calculado por CodeArtifact en función de los datos del activo cargado.
Las comparaciones de sumas de comprobación de CodeArtifact distinguen entre mayúsculas y minúsculas, y las sumas de comprobación calculadas por CodeArtifact están formateadas en minúsculas. Por lo tanto, si se carga la suma de comprobación 909FA780F76DA393E992A3D2D495F468
, fallará y la suma de comprobación no coincidirá porque CodeArtifact no la trata como igual a 909fa780f76da393e992a3d2d495f468
.
Recuperarse de discrepancias en las sumas de comprobación
Si se produce un error al cargar una suma de comprobación debido a una discrepancia en la suma de comprobación, intente realizar una de las siguientes acciones para recuperarla:
Vuelva a ejecutar el comando que publica el artefacto de Maven. Esto podría funcionar si un problema de red dañara el archivo de suma de comprobación. Si esto resuelve el problema de la red, la suma de comprobación coincide y la descarga se ha realizado correctamente.
Elimine la versión del paquete y, a continuación, vuelva a publicarla. Para obtener más información, consulte DeletePackageVersions en la referencia de la API de AWS CodeArtifact.