Con i progetti Maven multi-modulo, è possibile fare il mio principale del progetto (pom-confezionati) disponibili in Eclipse?

StackOverflow https://stackoverflow.com/questions/374043

  •  22-08-2019
  •  | 
  •  

Domanda

Abbiamo un grande gruppo di progetti maven2, con un root file POM messa in vendita di 10 o più moduli e un sacco di proprietà utilizzati dai moduli (numeri di versione di dipendenza, configurazione del plugin, dipendenze comuni, ecc). Alcuni dei moduli sono, come il progetto principale, i genitori ad altri gruppi di moduli.

Per chiarire, il progetto principale e detti progetti madri sono impostati pom imballaggi (a differenza ad esempio barattolo).

Perché ci sono molte dipendenze tra i vari progetti, mi piace usare Eclipse mvn: Eclipse sul progetto radice, che mi permette di eseguire il debug / passo in qualsiasi progetto in qualsiasi momento.

Tuttavia, con questo approccio, il POM radice stessa, e tutti gli altri progetti pom-imballati, sono disponibili in Eclipse. Quindi, se voglio modificarli, devo aprire loro qualche altro modo. Questo sta diventando un po 'di fastidio.

Quindi, la mia domanda è: è possibile fare in qualche modo i progetti pom-confezionati disponibili in Eclipse? In caso contrario, avete qualche consiglio che potrebbero rendere il mio lavoro con questi progetti più facili?

Per la cronaca, Attualmente sto usando MyEclipse 7.0.

È stato utile?

Soluzione

ho provato di nuovo questo, con Galileo e l'ultima versione di m2eclipse. Ora è possibile importare progetti Maven direttamente. (Senza mvn Eclipse: Eclipse), e si scopre che il POM root viene anche importato come un progetto, che è esattamente centrale quello che volevo

Altri suggerimenti

Bene. Un sacco di gente fa questo facendo il genitore POM un progetto di pari livello, e con un semplice POM reattore nella radice. Tuttavia, questo può causare problemi con la generazione del sito web e il plugin di rilascio, in quanto né i supporti questa modalità nel modo più completo uno potrebbe piacere.

Un grosso problema che abbiamo è che spesso le persone cercano di controllare il tronco utilizzando Subclipse, che aggiunge un file .project nella radice, che poi impedisce progetti di importazione sotto di tale livello. Invece dobbiamo andare al di fuori di controllare, quindi importare i progetti.

rumor

Ho sentito dire che Subversive potrebbe gestire progetti nidificati migliore, che è in realtà il problema qui. Oltre a questo, non ho una soluzione assoluta qui.

Si potrebbe provare a scrivere un compito per creare manualmente il file .project per ogni progetto POM nella sua directory. Non sono sicuro sulle specifiche, ma si potrebbe generare qualcosa come:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
        <name>${project.name}</name>
        <comment></comment>
        <projects>
        </projects>
        <buildSpec>
        </buildSpec>
        <natures>
        </natures>
</projectDescription>

nella directory principale del progetto e dovrebbe essere a posto.

Non sono sicuro se farlo sarebbe poi bloccare l'importazione dei bambini progetti in Eclipse anche se (come probabilmente sapete - è necessario importare tutti i vostri progetti non-pom prima e quindi creare progetti "generali" per gli altri , con il percorso corrispondente al percorso fisico sotto la struttura mvn). Eclipse vi vieta di creare un progetto all'interno di un altro, quindi se riconosce nulla dal più alto nella gerarchia del progetto avrai diresse al passato.

Sono riuscito a lavorare con Codehaus Plug-in Eclipse con progetti Maven avere genitori. Il plugin ha alcuni difetti, ma nel complesso si mantiene e si dovrebbe essere in grado di andare d'accordo con esso.

In realtà, se non si vuole dipendere m2eclipse, il modo "giusto" per farlo è quello di utilizzare un progetto piatta disposizione (come il problema è che Eclipse non supporta progetti nidificate).

In generale ho solo davvero bisogno il genitore disponibile in Eclipse per aggiungere le dipendenze e di avvalersi della formattazione XML. Il modo economico e allegro è quello di creare il progetto risorse e collegare il pom genitore in esso. File -> Nuovo -> Altro -> Generale -> File -> Avanzate

se si utilizza la versione 2.8 o successiva dell'eclisse plugin è possibile avere generare il link per voi in ciascuno dei vostri sottoprogetti per es.

<plugin>
    <artifactId>maven-eclipse-plugin</artifactId>
    <version>2.8-SNAPSHOT</version>
    <configuration>
        <linkedResources> 
            <linkedResource>
                <name>parent.xml</name> 
                <type>1</type>
                <location>${basedir}/${parent.relativePath}</location> 
            </linkedResource>
        </linkedResources> 
    </configuration>
  </plugin>

anche se si attualmente bisogno di controllarlo fuori dalla sovversione e costruire da soli in quanto non sembra risolvere da centrale ma.

svn co http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-eclipse-plugin/
cd maven-eclipse-plugin
mvn clean install
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top