Pregunta

Cuando hago una liberación de mi proyecto, quiero compartir la fuente con un grupo más amplio de personas de las que hago normalmente durante el desarrollo. El código se comparte a través de un repositorio Git. Para ello, he utilizado la siguiente:

En mi repositorio git local, me han definido los siguientes mandos a distancia:

origin  http://example.com/private
public  http://example.com/public

Actualmente estoy tratando de configurar el dispositivo de liberación-plugin Maven para gestionar versiones de las compilaciones, y para gestionar el etiquetado y empujando de código al repositorio público. En mi pom.xml, he enumerado el de la siguiente manera:

<scm><connection>scm:git:http://example.com/public</connection></scm>

(La eliminación de esta línea provocará liberación mvn: preparar a fallar)


Sin embargo, cuando se llama

mvn release:clean release:prepare release:perform

Maven llama

git push origin tagname

en lugar de empujar a la URL especificada en el POM.

Así que las preguntas son:

  1. La mejor opción:? ¿Debo estar etiquetado y comprometerse en mi repo privada (origen), y empujando al público de forma manual
  2. ¿Puedo hacer Maven empuje para el repositorio que elijo, en lugar de morosos con el origen? Me pareció que era implícito en el requisito del elemento en .
¿Fue útil?

Solución

Liberar cuando el repositorio scm.connection es diferente al origen se fija en la versión 2.0 de maven-liberación-plugin (o los plugins Git asociados). Para cambiar a esta versión, he añadido lo siguiente a mi POM:

<project>
    ...
    <build>
        <plugins>
            ...
            <plugin>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.0</version>
            </plugin>
            ...
        </plugins>
    </build>
    ...
</project>


Por cierto, Maven estaba recogiendo versión maven-liberación-plugin 2,0-beta-9 como más reciente que 2,0.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top