Domanda

Quando faccio un rilascio del mio progetto, voglio condividere la fonte con un gruppo più ampio di persone di quanto faccio di solito durante lo sviluppo. Il codice è condiviso tramite un repository Git. Per fare questo, ho usato il seguente:

Nel mio repository git locale, ho i seguenti telecomandi definito:

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

Attualmente sto cercando di configurare il rilascio-plugin Maven per gestire versioni delle generazioni, e di gestire la codifica e spingendo di codice al repository pubblico. Nel mio pom.xml, ho elencato la come segue:

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

(La rimozione di questa linea farà sì che il rilascio mvn: preparare a fallire)


Tuttavia, quando si chiama

mvn release:clean release:prepare release:perform

Maven chiama

git push origin tagname

piuttosto che spingere all'URL specificato nel POM.

Quindi le domande sono:

  1. Le migliori pratiche:? Devo solo essere la codifica e impegnandosi nel mio repo privato (origine), e spingendo manualmente pubblico
  2. Posso fare Maven spinta per il repository che ho scelto, piuttosto che inadempiente alle origini? Ho sentito questo era implicita l'esigenza della in .
È stato utile?

Soluzione

Il rilascio quando il repository scm.connection è diverso da quello di origine è fissato nella versione 2.0 di Maven-release-plugin (o il plugin git associati). Per passare a questa versione, ho aggiunto il seguente al mio POM:

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


Per inciso, Maven stava raccogliendo Maven-release-plugin versione 2.0-beta-9 come più recente di 2,0.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top