2009-09-17 5 views
6

EDIT: Ok ... quindi ho capito che SVN non dovrebbe essere usato per questo ... il che ha senso, suppongo (perché versione dei singoli file quando la versione dovrebbe essere un vaso separato?).Creazione/Accesso al repository Maven in SVN tramite NetBeans 6.7 * Revisionato *

Quindi dovremmo utilizzare un server interno per ospitare uno strumento di gestione del repository come Nexus (ecc.) E accedervi tramite http per aprire e disattivare le dipendenze. Ora stiamo mantenendo i nostri progetti in SVN. Qual è lo standard per le distribuzioni? Le dipendenze vanno a Maven. I progetti vanno in SVN. Dovremmo ignorare il dist e costruire cartelle? Da dove verranno distribuiti i nostri file WAR?

DOMANDA OLD (per i posteri)

Sono nuovo di zecca Maven e non sanno jack su di esso. Sto provando a valutarlo per vedere come andrà con il nostro sviluppo Java.

Mi piacerebbe avere un repository Maven nel nostro server SVN in modo che le dipendenze possano essere tirate giù da lì usando NetBeans 6.7. Non sono stato in grado di trovare come farlo durante molte ricerche su google e stackoverflow.

Quali sono le migliori pratiche qui? Sto pensando che vorremmo scaricare le dipendenze usando svn + ssh, ma la maggior parte delle cose online sembra puntare a usare http.

Riempi il mio cervello di grandi cose!


risposta

5

Consiglio vivamente di non farlo. Gli artefatti Maven non appartengono a un server SCM. Dovresti prendere in considerazione l'utilizzo di un gestore di repository come Nexus per archiviare i tuoi artefatti. Vedi qui per un confronto del principale repository managers.

Detto questo. Se sei determinato ad usare Subversion per ospitare i tuoi artefatti. Vedere questo question sull'utilizzo del wagon scm per la distribuzione in un repository Subversion.

Se vuoi saperne di più su Maven, controlla Maven: the definitive guide.

C'è un plugin Maven per Netbeans che gestirà le dipendenze. This article elenca alcune best practice per Maven e Netbeans.


Aggiornamento basato sulla domanda aggiornata. Cosa fare con i propri barattoli:

Maven ha uno deploy phase che pubblicherà le risorse dell'utente nel repository remoto. È necessario configurare la sezione distributionManagement del pom e fornire appropriate credentials nel file settings.xml per consentire l'implementazione. In genere si imposta un repository logico discreto sul server per i propri artefatti per tenerli isolati da artefatti di terze parti. Lo Nexus book fornisce alcune indicazioni utili sulla configurazione dei repository su Nexus. In particolare vedere la sezione Adopting a Repository Manager.

Se avete configurato il vostro progetto correttamente, eseguire mvn deploy e tutte le fasi fino ad includere la fase di distribuzione verrà eseguito, e il vostro manufatto saranno pubblicati nel repository, disponibile per l'utilizzo da parte del resto della tua squadra/società.

Se è necessario limitare l'accesso ai repository, è possibile configurare i controlli di accesso al repository in modo che solo gli utenti autenticati possano accedere a tali risorse (per Nexus vedere la sezione Managing Security del libro come guida).

Vale la pena notare che si possono fare in gran parte le stesse cose (più o meno) con Artifactory o Archiva come Nexus, ho incluso i riferimenti Nexus perché lo preferisco e la documentazione è davvero buona.

1

Non memorizzarli in SVN.

vorrei fare due cose per essere sicuri che non stai ricevendo troppi mal di testa:

  1. Specchio un repository più vicino alla tua casella da qualche parte che tu ei tuoi compagni di lavoro può condividere. Ciò eliminerà il download extra e ti consentirà di risolvere eventuali problemi che potrebbero emergere (e lo faranno) con i file pom/jar con mirroring, in modo che i tuoi compagni non debbano condividere il mal di testa. Ci sono diversi gestori di repository che aiutano in questo.
  2. Fai del tuo meglio per lavorare con il tuo repository di macchine e apportare cambiamenti/modifiche a qualsiasi file pom che potresti fare sul repository condiviso locale.