In Maven-Projekten werden die für Compile, Test oder Runtime benötigten Libaries als Dependencies über ihre Maven-Koordinaten groupId, artifactId und version angemeldet. Im Build-Verlauf werden die JAR-Files dann per Download aus Maven-Repositories im lokalen Repository des Users bereit gestellt.
In manchen Fällen benötigt man für bestimmte Build-Schritte den vollen Pfad der Libraries im lokalen Repository, z. B. um ein solches JAR-File als Java-Agent beim Start von Unit-Tests anzumelden. Das gelingt mit Hilfe der Goals properties des Dependency-Plugins: Es setzt für jede Dependency des Projekts eine Property namens groupId:artifactId:type[:classifier] auf den vollen Pfad des JAR-Files im lokalen Repository.
Ein Beispiel:
<project ... >
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>properties</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa</artifactId>
<version>2.5.2</version>
</dependency>
<dependencies>
Der volle Pfad der Eclipselink-Bibliothek im lokalen Repository steht nun in der Property org.eclipse.persistence:org.eclipse.persistence.jpa:jar zur Verfügung. Um sie als Agent beim Start von Tests mit Hilfe des Surefire-Plugins zu nutzen, muss somit nur noch die Property argLine passend gesetzt werden:
<properties>
<argLine>-javaagent:${org.eclipse.persistence:org.eclipse.persistence.jpa:jar}</argLine>
</properties>





