2013-10-22 17 views
11

C'è un modo per ottenere la directory principale per ${basedir} nel mio pom.xml? Attualmente ho

<earSourceDirectory>${basedir}/EAR/src/main/resources</earSourceDirectory> 

ma ho bisogno di accedere alla directory padre di basedir poiché le mie risorse si trovano in diversi progetti di maven.

Come posso ottenere la cartella principale di $ {basedir}?

+1

Hai provato '../$ {} project.basedir /'? –

+1

sì .. ma non funziona ... Ho provato a stampare con ottenuto come [echo] ../ C: \ Users \ User \ Documents \ NetBeansProjects \ MavenEARExample \ MavenEARExample-ear –

risposta

5
${project.basedir}/../ 

Tuttavia, le risorse di accesso in un modulo diverso è qualcosa che cerco di evitare. Suggerirei di usare lo unpack goal of the maven-dependency-plugin.

+0

Viene visualizzato solo come C: \ Users \ User \ Documents \ NetBeansProjects \ MavenEARExample \ MavenEARExample-ear /../ dove mi aspetto la directory padre C: \ Users \ User \ Documents \ NetBeansProjects \ MavenEARExample \ –

4

Per favore, non cercare di uscire dalla base, perché è considerata una pessima pratica. Anche se hai successo ora, sarà l'inizio di una soluzione alternativa alla soluzione alternativa, cercando di combattere Maven. Alla fine, Maven vincerà. Se uno sviluppatore controlla una directory con un pom.xml, dovrebbe essere in grado di eseguire il progetto con mvn verify senza riferimenti ad altre directory.

Se si tratta di risorse condivise, renderlo un progetto separato e includerlo come dipendenza (ricerca di progetti a più moduli). Oppure usa lo maven-remote-resources-plugin per trasferire queste risorse nel tuo progetto.

+0

Grazie Robert questa è una chiara spiegazione .. –

3

Nei bambini:

<properties> 
    <main.basedir>${project.parent.basedir}</main.basedir> 
</properties> 

Negli nipoti:

<properties> 
    <main.basedir>${project.parent.parent.basedir}</main.basedir> 
</properties> 
+0

Già obsoleto dopo Maven 3 – tribbloid

Problemi correlati