2010-10-29 21 views
8

Ho alcuni progetti legacy correlati che sono un disastro e mi piacerebbe metterli in pratica come progetto multi-modulo condiviso su subversion (primo progetto multi-modulo , li abbiamo sempre separati). Ci sono alcune parti chiave 1) webservice, 2) vari swing client, 3) model (w/persistence from hibernate), 4) core attività JSE.Eclipse + Subversion (subclipse) + Maven (m2eclipse) progetto multi-modulo

Ho lavorato per alcuni giorni cercando di impostarlo correttamente usando Eclipse (Helios), Maven (2.2.1), m2eclipse (0.10.0) e Subversion (1.6) per il nostro team. Continuo a rimbalzarmi o ad avere errori casuali che mi costringono a tornare indietro. Spero che qualcuno possa darmi una mano con alcune buone pratiche.

Ecco alcune delle domande:

m2eclipse richiede un "piatto" struttura eclissi del progetto. Ciò significa che dovrei creare un repository di subversion per ogni modulo? Se eseguo un repository e provo a effettuare il check-in dal progetto padre, ho difficoltà a impostare la proprietà svn: ignore sulle directory target di progetto nidificate (e altre).

Se faccio un modulo per repository, mi sembra di poterli controllare ok. La domanda quindi è qual è il modo migliore per verificare tramite subclipse? C'è un ordine migliore? I progetti padre o figlio prima? Devo eseguire il checkout del progetto principale e modificare il percorso di checkout del progetto figlio da annidare nella directory del file che mi consentirà di "installare clean" dal progetto principale?

Oppure, dovrei abbandonare subclipse e m2eclipse e checkout ed eseguire i miei obiettivi Maven dalla riga di comando.

Oppure, dovrei semplicemente utilizzare l'integrazione SCM con Maven. O forse non provi nemmeno a ottenere una configurazione di progetto multi-modulo.

Cosa fanno gli altri? Qualcuno ha qualche documentazione (mi mancava) o alcuni link (Google non ha consigliato)?

Grazie in anticipo per il vostro feedback.

risposta

8

m2eclipse richiede una struttura di progetto "piano" eclissi.

Hmm, m2eclipse supporta i progetti nidificati AFAIK (o almeno l'importazione di una struttura di progetto nidificata). Non utilizzo le procedure guidate di Eclipse per creare i miei progetti, quindi forse non sono a conoscenza di qualcosa.

Ciò significa che dovrei creare un repository di subversion per ciascun modulo?

No, no, assolutamente no e non lo farei (questo sarà difficile da mantenere). Tuttavia, a seconda dei cicli di rilascio dei progetti, potrebbe essere necessario pensare al layout del repository (singolo o multiplo trunk/tag/rami), specialmente se si prevede di utilizzare il plugin di rilascio di Maven. Se alcuni pezzi hanno cicli di rilascio indipendenti, allora andrei su diversi trunk/tag/rami. Se li rilasci sempre tutti insieme (come un singolo prodotto), allora un singolo tronco/tag/rami dovrebbe farlo. Ho scritto più risposte sul tema che possono essere di interesse:

Se faccio un repository e cercare di check-in dal progetto principale Sto avendo difficoltà a impostare svn: ignora la proprietà sulle directory target di progetto nidificati (e altre).

Qual è il problema particolare?

Se faccio un modulo per repository, mi sembra di poterli controllare ok. La domanda quindi è qual è il modo migliore per verificare tramite subclipse? C'è un ordine migliore? I progetti padre o figlio prima? Devo eseguire il checkout del progetto principale e modificare il percorso di checkout del progetto figlio da annidare nella directory del file che mi consentirà di "installare clean" dal progetto principale?

Qualunque sia la scelta che farete (più repository o non, tronco multiple/tags/rami o non), dovrebbe essere possibile alla cassa l'intera struttura di progetto in una sola volta (usando svn:externals se necessario). Almeno, dovresti provare a renderlo possibile (ed è, guarda i link pubblicati sopra).

Ma ripeto, non è consigliabile utilizzare più repository (a meno che non si desiderino numeri di revisione indipendenti) e nulla ti costringa a farlo.

Oppure, dovrei abbandonare subclipse e m2eclipse e checkout ed eseguire i miei obiettivi Maven dalla riga di comando.

Io uso Eclipse, m2eclipse, subclipse correttamente, tutto ben integrato (almeno per la parte build e "check in"). Ma faccio l'importazione iniziale e il checkout iniziale sulla riga di comando e poi importato

Oppure, dovrei solo usare l'integrazione SCM con Maven.

Non lo uso, non ne ho la necessità.

Oppure, forse non provare nemmeno a ottenere una configurazione di progetto multi-modulo.

Non vi è alcun motivo per vietare l'uso di una configurazione di progetto multi-modulo, multi-modules builds sono una delle parti chiave di Maven.

Cosa fanno gli altri? Qualcuno ha qualche documentazione (mi mancava) o alcuni link (Google non ha consigliato)?

Date un'occhiata ai link che ho postato :)

+0

Grazie! Controllerò quei link. Se condivido il progetto padre posso svn: ignora il target, .settings, .classpath, ecc, tutto nel progetto padre. Tutti i progetti per bambini hanno la svn: ignora in grigio. Dopo aver armeggiato con esso, l'unico modo in cui posso svn: ignorare i progetti figli è eseguire un commit completo del progetto principale, quindi eliminare le directory nei progetti figli che voglio ignorare, quindi eseguire il commit, quindi l'opzione svn: ignore è disponibile e posso ignorarli per i futuri commit. L'hai notato anche tu? Grazie ancora per la tua risposta informativa. – chadmaughan

1

All'inizio è un po 'complicato. Il modo in cui ho visto in genere di installazione è in questo modo:

in Subversion:

- Parent Project 
-- Module A 
--- pom.xml (module A) 
-- Module B 
--- pom.xml (module B) 
-- Module c 
--- pom.xml (module C) 
-- pom.xml (parent project) 

Alcune cose da notare (sapete già):

  • Bisogna avere i progetti figlio elencati come moduli in un genitore progetto
  • bisogna elencare il progetto principale in del vostro pom bambino (come il gruppo di appartenenza , artifac t, versione)
  • Quando si estrae il progetto da svn, è necessario fare 'check-out come progetto Maven' invece dello standard 'check out' (questo può essere un Gotcha)

Spero che questo aiuti.

+4

Come nota a margine, è necessario aggiungere il "Maven SCM Handler per Subclipse" dal sito di aggiornamento m2eclipse - http: //m2eclipse.sonatype. org/sites/m2e-extras, per l'opzione "Check out as maven project" da mostrare. –

+0

@Croydon: è interessante. Questo deve essere il motivo per cui non funziona fuori dagli schemi in Indigo; Scommetto che gli extra non sono inclusi - grazie! – javamonkey79

Problemi correlati