Итак, проблема, как я вижу, в том, что вы не можете получить абсолютный путь к родительскому каталогу в maven.
Я слышал, что об этом говорили как об анти-паттерне , но для каждого анти-паттерна существует реальный, законный вариант использования, и я устал от того, что Мавен говорит мне Я могу только следовать их образцам.
Так что работа вокруг, которую я нашел, состояла в том, чтобы использовать antrun. Попробуйте это в дочернем pom.xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>getMainBaseDir</id>
<phase>validate</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<exportAntProperties>true</exportAntProperties>
<target>
<!--Adjust the location below to your directory structure -->
<property name="main.basedir" location="./.." />
<echo message="main.basedir=${main.basedir}"/>
</target>
</configuration>
</execution>
</executions>
</plugin>
Если вы запустите mvn verify
, вы должны увидеть что-то вроде этого:
main:
[echo] main.basedir=C:\src\parent.project.dir.name
Затем вы можете использовать ${main.basedir}
в любом из других плагинов и т. Д. Мне понадобилось время, чтобы понять это, поэтому надеюсь, что это поможет кому-то еще.