2015-04-21 14 views
5

Ho visto un sacco di chiacchiere riguardo all'impostazione di un parametro ENV maven.multiModuleProjectDirectory, sia sulle mailing list SO sia su Maven, ma ho difficoltà a capire esattamente per cosa viene utilizzata/utilizzata questa impostazione.Per che cosa si usa maven.multiModuleProjectDirectory?

Ho cercato google, siti di esperti, documenti, ecc., Ma non riesco a trovare un riferimento che spieghi in realtà a cosa serve questo parametro o come sfruttarlo.

Qualcuno può spiegare il suo scopo e/o indicarmi la documentazione? In quale versione di Maven è stata introdotta?

risposta

6

La variabile di ambiente è stata introdotta in Maven 3.3.1 che è disponibile all'interno dello script mvn o nello script mvn.cmd. L'intenzione è quella di trovare l'inizio di una struttura a più moduli in cui è possibile trovare la posizione .mvn.

Questo è stato introdotto per rendere possibile la configurazione all'interno del progetto anziché dall'esterno.

Date un'occhiata al Maven 3.3.1 release notes.

+1

Grazie. Avevo letto tutte le note sulla versione 3.3.1 ma non menzionava nulla sulla var multiModuleProjectDirectory. Quindi, se ho capito bene, date le impostazioni nella cartella '.mvn', se dovessi provare a costruire un submodulo in modo indipendente (e non dalla radice), vorrei specificare questo var in modo che Maven possa trovare il mio' .mvn 'nel mio albero. Tuttavia, se lancio Maven dalla root del progetto, questa var non sarebbe più necessaria. Corretta? –

+1

Costruire un sottomodulo è fatto da 'mvn -pl ...' che non cambia nulla. A parte questo no, non è necessario specificarlo, perché è gestito internamente dagli script e questo è il motivo per cui non è descritto nelle note di rilascio, perché di solito non è necessario preoccuparsene. È necessario perché è utilizzato internamente per trovare la cartella radice per le build multi modulo. – khmarbaise

+2

Infatti posso usare 'mvn -pl ...', ma c'è anche l'opzione di eseguire 'mvn' direttamente nella sottodirectory del modulo e non dalla radice multi-modulo. O è considerata una cattiva pratica in una build multi-modulo? –