2012-03-20 13 views
14

Ho appena sincronizzato un artefatto con Maven Central da oss.sonatype.org. Immediatamente dopo averlo fatto, è stato scoperto un problema (ovviamente). Non ho ancora annunciato il nuovo artefatto, è molto improbabile che qualcuno lo stia già utilizzando, quindi vorrei ritirarlo prima che qualcuno inizi a utilizzare la versione spezzata.Rimozione di un artefatto da Maven Central

Come posso rimuovere un artefatto rotto da Maven centrale?

+0

Ecco un esempio di dove sono stati rimossi gli artefatti https://issues.sonatype.org/browse/MVNCENTRAL-218 –

risposta

14

Impossibile eseguire. È una regola. Ma se vuoi provare, contatta le persone Sonatype che supportano oss.sonatype.org. Quindi, in genere, spendi una nuova versione più alta con la correzione e dì a tutti di usarla.

5

Se si distribuisce accidentalmente un artefatto che non funziona o presenta un bug o qualsiasi altra soluzione usuale in Maven è di creare una nuova versione che risolve i problemi. Questo è tutto. Cancellare in Maven Central non è stato fatto e non dovrebbe mai accadere.

+0

Il problema che ho è che ho diviso i pacchetti o modificato l'id di gruppo. Non si tratta di una nuova versione, ma di una rimozione di data scaduta rilasciata nel posto sbagliato nella gerarchia dei pronti contro termine. – Gray

+0

Semplicemente come @bmargulies menzionato non può essere fatto. Questo è tutto. Stiamo parlando di Maven Central? – khmarbaise

+0

centrale, sì. Ho visto che i pacchetti vengono cancellati da lì, quindi penso che si tratti più di sonatype, ma di limitazioni sulla centrale. – Gray

1

Non è possibile rimuovere un artefatto da Maven Central perché altri potrebbero averlo già utilizzato. Maven non controllerà gli aggiornamenti per le versioni non snapshot degli artefatti, quindi se qualcuno ha usato la vecchia versione e una nuova versione è stata caricata, queste persone non vedrebbero mai la nuova versione.

La soluzione alternativa consiste nel rilasciare una nuova versione del tuo artefatto.

1

E 'difficile resistere alla tentazione di rilasciare solo il repository messo in scena (è solo un clic di distanza), ma, come suggerito nella Sonatype OSS Usage Guide

Si vorrà scaricarli e fare qualche test manuali (o tenere un voto della comunità ) prima di rilasciarli definitivamente.

Se è la prima volta che viene rilasciato, è necessario commentare il biglietto JIRA di Sonatype OSS per attivare la sincronizzazione centrale. Presumibilmente questa è un'opportunità per dire "Aspetta! Questo artefatto è rotto. Ti preghiamo di non sincronizzarlo con Maven Central!" :)

Ma come altri hanno già detto, se è stato rilasciato, è troppo tardi: dovrai rilasciare una nuova versione (e assicurarti che gli utenti siano consapevoli di non usare quella rotta).

Le versioni beta sono una buona idea per le nuove/principali versioni - le persone sono un po 'più clemente se hai riempito qualcosa, e non perdi il numero di versione desiderato.

1

Se non si desidera creare una nuova versione, un'altra soluzione sarebbe quella di spingere la risorsa fissa sotto la stessa versione.

Problemi correlati