2013-10-22 11 views
11

Czy istnieje sposób uzyskania katalogu nadrzędnego dla ${basedir} w moim pom.xml? Obecnie mam

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

, ale potrzebuję uzyskać dostęp do katalogu nadrzędnego opartego o basedir, ponieważ moje zasoby znajdują się w innym projekcie maven.

Jak mogę uzyskać folder nadrzędny o wartości $ {basedir}?

+1

Czy próbowałeś '../$ {project.basedir} /'? –

+1

tak .. ale nie działa ... Próbowałem wydrukować z otrzymałem wynik jako [echo] ../ C: \ Users \ User \ Documents \ NetBeansProjects \ MavenEARExample \ MavenEARExample-ear –

Odpowiedz

5
${project.basedir}/../ 

Jednak dostęp do zasobów w innym module to coś, czego staram się unikać. Proponuję użyć unpack goal of the maven-dependency-plugin.

+0

Otrzymuję dane wyjściowe tylko jako C: \ Users \ User \ Documents \ NetBeansProjects \ MavenEARExample \ MavenEARExample-ear /../ gdzie, jak oczekuję, katalog nadrzędny C: \ Users \ User \ Documents \ NetBeansProjects \ MavenEARExample \ –

4

Proszę, nie próbuj wychodzić poza bazę, ponieważ jest to bardzo złe ćwiczenie. Nawet jeśli teraz odniesiesz sukces, będzie to początek obejścia tego problemu, próbując walczyć z Mavenem. W końcu Maven wygra. Jeśli programista sprawdzi katalog z numerem pom.xml, powinien być w stanie uruchomić projekt pod numerem mvn verify bez żadnych odniesień do innych katalogów.

Jeśli są to zasoby udostępnione, uczyń z tego oddzielny projekt i dołącz go jako zależność (wyszukiwanie projektów wielomodułowych). Lub użyj maven-remote-resources-plugin, aby pobrać te zasoby do projektu.

+0

Dzięki Robert to jasne wyjaśnienie .. –

3

U dzieci:

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

W wnuków:

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

Już przestarzałe po Maven 3 – tribbloid

Powiązane problemy