2009-08-05 3 views
5

Spring Roo può essere utilizzato in progetti esistenti che follow standard maven layout. Finora sembra che i progetti che non utilizzano Maven siano sfortunati.Posso usare Spring roo nel progetto esistente che non usa Maven?

Mi chiedo che cosa (se presente) sono le opzioni per tali progetti esistenti.

Ri-organizzare il layout del progetto di conformarsi alle layout di Maven? Questo sembra essere un percorso molto difficile per i progetti con anni di storia in CVS, poiché lo method for moving around directories in CVS è estremamente invasivo.

Ci sono altre opzioni, come la modifica di configurazione Maven per lavorare con layout non standard? Quello che ricordo dalle mie precedenti letture su questo argomento, l'approccio CoC di Maven non favorisce tali layout non standard.

Edit: risposta

di Rich sotto mostra che l'eccesso di cavalcare le impostazioni predefinite in super-pom è banale. Questo ci lascia con la domanda se Spring Roo giocherà bene con tali modifiche. Questo è dubbio dato che Spring Roo non usa Maven stesso.

Edit:

risposta aggiornata di Rich dimostra che, per impostazione predefinita, ROO utilizzerà i percorsi hard coded e non prenderà modifiche nel vostro pom.xml Così rispondere finora sembra essere che non è possibile già pronto per l'uso, ma può essere eseguito tramite una codifica personalizzata (o chiedere al team di ROO di supportarlo)

risposta

2

Non c'è ragione per cui non abbiamo (la squadra Roo) in grado di rendere il MavenPathResolver consentire percorsi personalizzati da utilizzare, e uno dei motivi intenzionali ho creato un'astrazione PathResolver è stato quello di supportare la personalizzazione dei percorsi di percorso comune non solo per Maven non predefinito luoghi ma anche ad altri sistemi di costruzione come Ant + Ivy. tutti i componenti aggiuntivi di base di Roo sono stati scritti per utilizzare PathResolver, quindi non dovrebbe essere un grande sforzo per supportarlo. Aggiungi una richiesta di miglioramento allo Roo Jira instance se desideri ancora questo supporto.

+0

Grazie Ben per la risposta dettagliata. Ho cambiato lavoro da quando ho fatto questa domanda. Nel mio precedente lavoro stavo valutando la possibilità di usare Roo in un progetto esistente che utilizzava sia AspectJ che Spring indipendentemente. Ma il layout del progetto non era basato su Maven. Da qui la domanda. –

2

È possibile modificare Maven per utilizzare un diverso insieme di convenzioni. Il set standard è ereditato dallo Maven super POM e può essere ridefinito ridefinendo la proprietà pertinente.

Ad esempio, per modificare la directory delle fonti da src/main/java a src, la directory di test di test-src e la directory delle risorse da src/main/resources alle risorse che si impostare nel seguente POM:

<build> 
    <sourceDirectory>src</sourceDirectory> 
    <testSourceDirectory>test-src</testSourceDirectory> 
    <resources> 
    <resource> 
     <directory>resources</directory> 
    </resource> 
    </resources> 
</build> 

essere consapevoli del fatto che alcuni plugin potrebbero non utilizzare le proprietà standard per accedere alle posizioni (ad esempio hardcoding bersaglio/classi invece di usare $ {} project.build.outputDirectory, così si potrebbe avere il problema dispari.


Aggiornamento: Sembra Roo Curre semplicemente questi sono properties hardcoded. Potrebbe essere possibile sostituire MavenPathResolver o aggiungere un resolver aggiuntivo per utilizzare le proprietà personalizzate.

Se questo è un problema reale per te, è possibile raise a request ottenere MavenPathResolver modificato per consentire posizioni personalizzate.

+0

Qualche idea se Spring ROO funzionerà con configurazioni così modificate? Penso che Spring ROO stesso non usi Maven ma i progetti generati lo usano. –

+0

Grazie per l'aggiornamento, Rich. –

+0

Dove aggiungeremo il resolver aggiuntivo? –

1

A partire dal Roo 1.2 non è implementato.