Pregunta

Tengo un gran proyecto que contiene alrededor de 200 frascos, cuando me preparo liberación Maven prepararse para todos los frascos, pero seguro que hay frascos que no se ha modificado desde la última compilación por lo que ¿hay alguna manera de comprobar si el tarro se ha modificado desde la última construir a partir de SMC? y excluirlos?

No quiero relase frascos (más de 200) de forma individual.

Por ejemplo: Quiero hacer relase para los padres, pero no quiero jar4 relase que no ha sido modificado

-Parent

---------Module1

----------------jar1*

----------------jar2*

---------Module2

----------------jar3*

----------------jar4   
¿Fue útil?

Solución

Por ejemplo: Quiero hacer relase para los padres, pero no quiero jar4 relase que no ha sido modificado

La sintaxis para esto es

mvn -pl Module1,Module2/jar3 <your maven goals here>

(en este caso se quiere construir todas módulo 1 y justo jar3 de Module2)

Ahora la parte difícil es cómo montar el parámetro a -pl. Estoy bastante seguro de que no hay manera experta para hacer eso, por lo que probablemente tendrá que escribir un script de shell (o Ruby, Groovy, Perl Python, etc. script) que lo hace por usted.

Básicamente, lo que su script debe hacer:

  • mirada de todos los directorios de proyectos Maven (directorios que contienen un pom.xml) en el directorio dado, ordenarlos en sentido inverso (caminos más profundos primero)
  • encontrar todos los archivos modificados en toda la jerarquía (usando SVN, CVS o lo que sea llamadas)
  • asignar cada archivo cambiado a uno de los proyectos (mediante la comparación de caminos), recoger todos los proyectos coincidentes en una lista
  • Ahora optimizar la lista haciendo un poco de optimización padre / hijo (si todos los hijos de un padre dado están presentes, sacar a los niños y añadir los padres). Haga esto varias veces hasta llegar a la jerarquía de raíz.
  • En la lista restante, extraer las rutas relativas, se unen con una coma y comenzar su proceso de Maven usando ese valor para el parámetro -pl.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top