2012-04-19 17 views
7

Gestisco molti progetti di esperti. La maggior parte di questi si distribuisce nel repository interno di Maven. Ora vorrei iniziare a pubblicare un progetto su Maven Central. Fino ad ora, ho avuto un padre POM che ha specificato la gestione della distribuzione del nostro repository interno. Non ha senso distribuire queste informazioni a Maven Central.Spostare un progetto in Maven Central

Come devo specificare la gestione della distribuzione per i miei progetti interni? Devo avere un gruppo di genitori separati per i progetti interni?

Sonatype cita un modo per distribuire direttamente ai propri repository, ma si consiglia di utilizzare il proprio padre gen (oss-genitore). Guardando i progetti usando mvnrepository.org, non sono riuscito a trovare alcun progetto con oss-parent come genitore. La maggior parte dei progetti distribuisce manualmente i propri artefatti su Sonatype? Dove e come vengono distribuiti prima?

Tante domande! Sono stupito di quanto sia complicato questo ...

Aggiornamento: si scopre che alcuni dei progetti che ho identificato do utilizzano oss-parent. È solo nascosto poiché è il genitore di un genitore.

+1

L'ultima volta che ne ho letto, credo che tu abbia dovuto procurarti un biglietto per portare il tuo barattolo in Maven Central. Ma tu hai ragione sul repository OSS Sonatype, penso che tu abbia soddisfatto determinati prerequisiti che ti permettono di distribuirlo direttamente al loro repository. Se stai mettendo alcune librerie di pubblico dominio, dovrebbe idealmente avere Apache 2 o una licenza simile. Sei pronto per aprire il tuo codice al mondo? Se lo sei, potrebbe avere senso ospitare il tuo codice in un posto come Github, SourceForge o Google Code. –

+0

Il codice è aperto al mondo. Ora sto cercando di rendere i binari disponibili per il mondo. – schmmd

risposta

9

Una volta che si è tutto pronto, è possibile distribuire staged releases e SNAPSHOTs direttamente al repository OSS di Sonatype. Le versioni delle fasi possono quindi essere released through Sonatype's Nexus UI.

Per creare una cartella di repository per l'applicazione a cui è possibile eseguire la distribuzione, è possibile effettuare il open a ticket with Sonatype on their JIRA insieme al riferimento al progetto open source che verrà distribuito. Il processo è molto fluido e Sonatype ti aiuterà se non fornirai tutte le informazioni necessarie.

Mentre al primo tentativo non sembra che molti progetti abbiano come genitore osseo, lo fanno spesso quando si naviga nell'albero POM. Ad esempio, Google Guava ha il genitore guava-parent, che ha il genitore oss-parent. Una volta che il progetto è stato impostato su oss-parent e il repository è configurato, è possibile distribuire facilmente SNAPSHOT e release con mvn deploy o mvn release:prepare release:perform.

Sembra travolgente, ma è facilmente comprensibile se si solcano i gradini per la prima volta.

6

Il primo che consiglio di leggere è il seguente: https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide Il genitore OSS fa in circostanze particolari sotto altri no. Dipende dal tipo di progetto che ti piace distribuire.

UPDATE: Quel collegamento è morto ora. Guarda here per assistenza sulla distribuzione in Sonatype.

UPDATE: Per Maven centrale Vedi questo: http://central.sonatype.org/

+0

Ho letto quel documento. Cura di elaborare quando il genitore OSS ha senso e quando non lo fa?In che modo i progetti senza un genitore OSS vengono distribuiti a Maven Central? Come si distribuiscono internamente senza distribuzioneManagement nel loro pom.xml? – schmmd

+0

Basta semplicemente creare la propria area di gestione della distribuzione (http://search.maven.org/#artifactdetails|com.soebes.smpp|smpp|0.3|pom). Non è possibile distribuire internamente senza una distribuzioneManagement ... la cosa migliore è avere internamente il gestore di repository ... Se si dispone di un progetto che viene utilizzato internamente ma verrà distribuito a maven central rispetto a questo progetto, è necessario che la propria area di distribuzione possa essere gestita da usando un genitore diverso, ma fai attenzione che nulla di quello che è successo a Maven Central dovrebbe dipendere da cose che non sono in centrale. – khmarbaise

+2

Il documento a cui si fa riferimento è magicamente scomparso, senza alcun chiaro successore a quanto pare. –

Problemi correlati