Я не знаю точно , почему ${project.parent.basedir}
не "доступен" от AntRun, возможно, он просто не поддерживается (см. http://jira.codehaus.org/browse/MNG-3597).
Вот ужасный обходной путь, использующийgmaven:
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>set-custom-property</id>
<phase>validate</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
project.properties.setProperty('main.basedir', project.parent.basedir.toString())
</source>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>render-parameter-sql</id>
<phase>validate</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<echo>project.artifactId : ${project.artifactId}</echo>
<echo>project.parent.basedir : ${project.parent.basedir}</echo>
<echo>main.basedir : ${main.basedir}</echo>
<echo>project.basedir : ${project.basedir}</echo>
<echo>project.build.directory : ${project.build.directory}</echo>
</target>
</configuration>
</execution>
</executions>
</plugin>
Я не горжусь этим, но это вроде "работает" (если вам подходит строковое представление пути к родительскому basedir):
$ mvn validate
[INFO] Scanning for projects...
...
[INFO] --- maven-antrun-plugin:1.6:run (render-parameter-sql) @ Q4040778 ---
[INFO] Executing tasks
main:
[echo] project.artifactId : Q4040778
[echo] project.parent.basedir : ${project.parent.basedir}
<b>[echo] main.basedir : /home/pascal/Projects/stackoverflow</b>
[echo] project.basedir : /home/pascal/Projects/stackoverflow/Q4040778
[echo] project.build.directory : /home/pascal/Projects/stackoverflow/Q4040778/target
[INFO] Executed tasks
...
Но я должен сказать, что то, что вы хотите сделать ( из этого модуля, мне нужен корень родителя для доступа к другим модулям ) - это плохая практика , модули должны быть самостоятельнымисодержится и не тесно связан.
Я не рекомендую использовать то, что я написал:)