Pergunta

Quando faço um lançamento do meu projeto, quero compartilhar a fonte com um grupo mais amplo de pessoas do que normalmente durante o desenvolvimento. O código é compartilhado por meio de um repositório Git. Para fazer isso, usei o seguinte:

No meu repositório Git local, tenho os seguintes controles remotos definidos:

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

Atualmente, estou tentando configurar a plugina de liberação do Maven para gerenciar a versão das compilações e gerenciar a marcação e o empurrão do código para o repositório público. No meu pom.xml, listei ou003Cscm/> do seguinte modo:

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

(Remover esta linha causará liberação de MVN: Prepare -se para falhar)


No entanto, ao ligar

mvn release:clean release:prepare release:perform

MAVEN liga

git push origin tagname

em vez de empurrar para o URL especificado no POM.

Portanto, as perguntas são:

  1. Prática recomendada: devo apenas marcar e cometer no meu repo (origem) privado e pressionar para o público manualmente?
  2. Posso fazer o Maven empurrar para o repositório que eu escolho, em vez de não formar a origem? Eu senti que isso estava implícito pelo requisito dou003Cconnection/> elemento emu003Cscm/> .
Foi útil?

Solução

A liberação quando o repositório SCM.Connection é diferente da origem é corrigida na versão 2.0 do maven-release-plugin (ou os plugins Git associados). Para mudar para esta versão, adicionei o seguinte ao meu POM:

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


Aliás, o Maven estava pegando a versão 2.0-beta-9 de liberação de maven como sendo mais recente que 2.0.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top