java - gmbh - travis ci local
Cómo evitar "El trabajo excedió el límite de tiempo máximo para los trabajos y se terminó." Al acceder a mvnsearch.org en Travis CI? (2)
Desde aprox. 72h Estoy recibiendo The job exceeded the maximum time limit for jobs, and has been terminated.
en TravisCI, que parece estar relacionado con la solicitud de artefactos de mvnsearch.org, por ejemplo, https://travis-ci.org/document-scanner/document-scanner-aggregator/builds/266942578 . Supongo que es un repositorio remoto que no estoy usando, pero algunas de las dependencias del proyecto son.
mavensearch.org parece ser inalcanzable o responde muy lentamente. No encuentro ninguna noticia sobre su estado operativo. Es extraño que los problemas no se solucionen en 72 horas, por lo que asumo un problema de larga data.
La única solución posible que podría imaginar sería agregar la descarga e instalación de un proxy de Maven al script de compilación de Travis CI y al proxy mavensearch.org en un archivo de Maven settings.xml
. Hay alguna manera de evitar esto?
No funciona usar el elemento mirror
en ~/.m2/settings.xml
porque hace referencia al ID del repositorio en los POM referenciados, que pueden ser dependencias transitivas y pueden cambiar si se usan instantáneas y se deben revisar y ajustar finalmente Después de cada cambio de versión.
Habilitar el almacenamiento en caché en Travis CI mediante la adición de
cache:
directories:
- $HOME/.m2
Para .travis.yml
resultó no ser la solución o solo una solución temporal (para aproximadamente 40 compilaciones durante la última semana; porque mvnsearch.org estuvo disponible de nuevo o por otras razones difíciles de entender), encontré el siguiendo una solución más prometedora (que es mucho más fácil que configurar una instancia de administrador de repositorio Nexus que se puede usar como un espejo):
Añadir
- echo -e ''<?xml version="1.0" encoding="UTF-8"?>/n<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.1.0"/n xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">/n <mirrors>/n <mirror>/n <id>mvnsearch-unavailable</id>/n <name>mvnsearch-unavailable</name>/n <mirrorOf>mvnsearch</mirrorOf>/n <url>http://repo1.maven.org/maven2</url>/n </mirror>/n </mirrors>/n <profiles>/n <profile>/n <id>no-mvnsearch</id>/n <repositories>/n <repository>/n <id>mvnsearch</id>/n <url>http://www.mvnsearch.org/maven2</url>/n <releases>/n <enabled>true</enabled>/n </releases>/n <snapshots>/n <enabled>true</enabled>/n </snapshots>/n </repository>/n </repositories>/n </profile>/n </profiles>/n <activeProfiles>/n <activeProfile>no-mvnsearch</activeProfile>/n </activeProfiles>/n</settings>'' > $HOME/.m2/settings.xml
- cat $HOME/.m2/settings.xml
to .travis.yml
que anulará los usos de http://www.mvnsearch.org/maven2
en cualquier dependencia transitiva difícil de controlar y usará el repositorio central de Maven http://repo1.maven.org/maven2 que cubrió todas las dependencias en Mi caso (podría no serlo en otros casos).
Tenga en cuenta que la Ley de Murphy se aplica a cualquier cosa: Maven 3.1.1 ignora esta configuración, aunque afirma que usa el espejo en su salida de depuración (¡ouch!).
La compilación ahora es 7 minutos más rápida de lo que era con la solución de almacenamiento en caché que funciona temporalmente.
Un par de acciones se pueden hacer:
- Los problemas comunes de compilación: Mis compilaciones se están agotando, la respuesta de Travis CI ofrece un par de soluciones. Uno de ellos es «extender el tiempo de espera» para el proceso de Maven .
- Habilitar el almacenamiento en caché de las dependencias de Maven: Dependencias de almacenamiento en caché y Directorios: Directorios de almacenamiento en caché (Bundler, dependencias): Directorios arbitrarios - Travis CI .
- Utilice un administrador de repositorios: «actúe como servidor proxy dedicado para los repositorios públicos de Maven» .
Referencias adicionales:- Ejemplo de Nexus:
- Repositorios Maven - Nexus Repository Manager 3 - Sonatype Help . Consulte las secciones «Navegación y búsqueda en Repositorios de Maven» (información general) y «Configuración de Apache Maven» (
settings.xml
-información relacionada). - «Manual del usuario» para el caso de uso: uso de Nexus 3 como su repositorio - Parte 1: Artefactos de Maven | TheNEXUS .
- Repositorios Maven - Nexus Repository Manager 3 - Sonatype Help . Consulte las secciones «Navegación y búsqueda en Repositorios de Maven» (información general) y «Configuración de Apache Maven» (
- La pregunta general: ¿Cómo se refleja un repositorio de Maven? .
- Ejemplo de Nexus: