Antes que nada, tengo algún tipo de entendimiento de que la siguiente puede no ser la forma generalmente aceptada de hacer las cosas.Actualice una versión de proyecto de Maven desde el script
Tenemos un proyecto Maven 2 que tiene un número de versión que se debe actualizar cada semana más o menos, durante una nueva versión. Durante este proceso, he intentado eliminar todas las cosas que uno tiene que recordar y he creado un script bash que maneja el proceso de forma interactiva.
Sin embargo, mi problema es actualizar la versión de pom desde la línea de comandos. Puedo hacer esto con sed, pero no creo que sea muy conveniente. Me preguntaba si hay algún complemento Maven que pueda modificar el pom.xml directamente desde la línea de comandos. La versión se establece en la sección de propiedades del pom. ¿Sería posible escribir un complemento que cambiaría las propiedades?
Gracias de antemano.
actualización
parece que mi problema fue con las versiones del proyecto definidos como propiedades (que se aplicaron al filtrar) que parece ahora un poco tonto.
Una cosa que todavía estoy buscando una respuesta es cómo obtener la versión de cierto proyecto de manera confiable a la línea de comandos. Anteriormente tenía una propiedad "bastante única" que obtuve usando grep
, pero ahora el elemento <version>
no es exclusivo, ya que en el proyecto hijo hay al menos dos de estos. Necesitaría algún tipo de analizador XML si Maven no tiene soluciones, pero mi objetivo es hacer que el guión sea lo más independiente posible.
No estoy seguro de si debería haber creado una nueva pregunta a partir de esto, pero no lo hice. Obtener la versión está muy relacionado con la configuración de la versión.
Gracias! Encontré ese plugin por mi cuenta, pero de alguna manera me olvidé del hecho de que el complemento realmente puede actualizar el pom.xml y no solo mostrar dependencias y demás. Establecer la versión no funciona, ya que la versión está definida en el pom padre como una propiedad, que no me di cuenta de mencionar. Sin embargo, descubrí que hay un objetivo "actualizar-propiedades" que podría ser el truco. – mkko
Aparentemente, "update-properties" solo es para actualizar dependencias y no establecer ningún valor. "versions: set" es la coincidencia más cercana, pero parece que no hay forma de definir la versión en el pom padre de esta manera, o al menos como una propiedad. – mkko
@mkko: 1. En realidad ** debes ** codificar la versión en el POM padre y en los elementos '' de los módulos secundarios, ver [MNG-624] (http://jira.codehaus.org/browse/MNG-624) para discusiones exhaustivas sobre este tema 2. Las dependencias deben usar la propiedad incorporada '$ {project.version}', no hay una razón válida para usar una propiedad para la versión. Así es como funciona con Maven. 3. Y luego podrás usar 'versions: set' (pero esta es una consecuencia indirecta de hacer las cosas bien). –