2008-09-18 16 views
5

Con il mio multiprogetto ho un errore durante l'esecuzione del rilascio: preparare. Non c'è niente di stravagante nell'impostazione del progetto e in ogni fase di rilascio, prima che funzioni bene. L'errore che ottengo è:Perché mvn rilascia: preparazione fallita durante la codifica?

 
    [INFO] ------------------------------------------------------------------------ 
    [ERROR] BUILD FAILURE 
    [INFO] ------------------------------------------------------------------------ 
    [INFO] Unable to tag SCM 
    Provider message: 
    The svn tag command failed. 
    Command output: 
    svn: Commit failed (details follow): 
    svn: File '/repos/june/tags/foo-1.0.2/foo.bar.org/pom.xml' already exists 

Hai idea di dove viene e come ottenere intorno ad esso?

(scusate per il post duplicati -.. Primo è stato chiuso perché non ho formularlo come una questione che può essere risolta Spero che sia ok ora)

EDIT
The Maven plug-in di rilascio si prende cura della versione che si gestisce. Quindi quando controllo il percorso nel repository subversion il percorso non esiste ancora.

EDIT 2
@ Ben: Non conosco la versione server, ma il cliente è 1.5.2, troppo.

risposta

10

Questo il problema è risolto nell'ultima versione di maven-release-plugin. Aggiungi questo al tuo POM per farlo entrare.

<build> 
    <pluginManagement> 
    <plugins> 
     <plugin> 
     <artifactId>maven-release-plugin</artifactId> 
     <version>2.0-beta-9</version> 
     </plugin> 
    </plugins> 
    </pluginManagement> 
</build> 

Il problema che è stato risolto è MRELEASE-375.

0

Per quanto ne so, si tratta di un bug in Subversion 1.5 e non direttamente correlato a Maven. Tuttavia, una soluzione alternativa per me è quella di aggiornare il repository svn locale ed eseguire il rilascio: preparare nuovamente l'obiettivo.

1

È perché non è stato aumentato il numero di versione - 1.0.2 già esistente nel repository Subversion.

Aumentare la versione o rimuovere semplicemente il tag /repos/june/tags/foo-1.0.2 dal repository.

0

Ho passato parecchio tempo a litigare con questo. Qualcosa è diverso in SVN 1.5.1+ che rompe il commit di un tag direttamente dalla copia di lavoro - che è esattamente ciò che fa Maven. C'è ancora un sacco di dito su chi è responsabile per risolvere il problema.

È possibile eseguire un 'svn update' ed eseguire nuovamente il comando di rilascio, ma se si sta eseguendo un rilascio: branch, questo farà sì che il plugin di rilascio non restituisca i file POM allo stato precedente.

La soluzione migliore che conosco è quella di tornare a Subversion 1.5.0.

1

Roland, se non l'avete già visto, date un'occhiata al post sul blog di John Smart su questo problema. Anche se lo script egli propone è poco elegante, si risolve il problema:

http://weblogs.java.net/blog/johnsmart/archive/2008/12/subversion_mave.html

L'altra soluzione è quella di utilizzare Git. (Me == attualmente scrivendo su Maven e Git)

+0

Grazie per le informazioni aggiuntive. Non conoscevo ancora il post di blog. –

0

Questo è fixed nella nuova release plug-release, 2,0-beta-9

0

mi ha colpito questo post come ho avuto un problema di costruire su un server che non ha avuto il comando svn installato.

questo ha aiutato: Jenkins with Subversion