Uno de los problemas más comunes y molestos que encuentro con Maven es el proceso de construcción que falla/pasa dependiendo de quién, cuándo y en qué máquina está ejecutando el proceso.Algoritmo para resolver problemas "Maven no funciona para mí"
Más formalmente - en el mundo ideal Esperaría que el proceso de compilación sea repetible. Como programador, diría que espero que el proceso de compilación sea como el pure function del código fuente y los recursos como entrada de compilación y "un entorno". Esperaría que devuelva el mismo resultado en cualquier momento y en cualquier lugar que lo "evalúe" utilizando "entorno fijo" y espero (más bien deseo) que todos en el equipo tengan el mismo "entorno fijo".
En el mundo real o bien "un entorno" cambia con el tiempo o varía entre las máquinas de desarrollo, posiblemente porque incluye algunas dependencias que ni se espera ni se da cuenta.
Lo que estoy tratando de lograr haciendo esta pregunta es encontrar/definir un algoritmo/procedimiento o una lista de verificación para la resolución de problemas no repetibles en los procesos de compilación de Maven. Supongamos que tenemos dos máquinas separadas A y B con el mismo sistema operativo y que estamos construyendo exactamente la misma versión de nuestra aplicación en ellas, pero dan resultados diferentes (por ejemplo, una es exitosa y la otra falla). Dónde/cómo uno debe buscar las diferencias entre estos dos "entornos".
Estos son algunos pasos que suelo usar:
- comparar los POM efectivas obtenidas a través de
mvn help:effective-pom
- comparar versiones ejecutables MVN + otras herramientas involucradas (por ejemplo, JDK)
- comparar los valores de entorno (obtenidas bajo Windows de comandos mediante la línea de comandos
set
) settings.xml
comparar los archivos de los directorios home del usuario,- comp classpaths son generados utilizando
mvn dependency:build-classpath
- repositorio de borrado o incluso ambos repositorios
Cualquier idea qué más puede dar informaciones valiosas? Tal vez hay una mejor manera en la que simplemente me estoy perdiendo ...
Quizás el título de la pregunta debería ser "Maven no funciona para mí", o ¿realmente ves que Maven es un problema para las personas?:) –
Ooops, hice un error tipográfico en el título. Gracias por detectar eso. – kopper