Pfade zu Maven-Dependencies als Properties

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>
Advertisements

Über Dirk Weil
Dirk Weil ist seit 1998 als Berater im Bereich Java tätig. Als Geschäftsführer der GEDOPLAN GmbH in Bielefeld ist er für die Konzeption und Realisierung von Informationssystemen auf Basis von Java EE verantwortlich. Seine langjährige Erfahrung in der Entwicklung anspruchsvoller Unternehmenslösungen machen ihn zu einem kompetenten Ansprechpartner und anerkannten Experten auf dem Gebiet Java EE. Er ist Autor in Fachmagazinen, hält Vorträge und leitet Seminare und Workshops aus einem eigenen Java-Curriculum.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: