Ich würde keine dieser Lösungen verwenden.
schließen Sie einfach das Maven-dependeny-Plugin, um Ihre Maven bauen und stellen Sie die Konfiguration auf Ihre Bedürfnisse:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<configuration>
<outputDirectory>/tmp/alternateLocation</outputDirectory>
</configuration>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>none</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>/tmp/alternateLocation</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
können Sie mehrere Elemente ändern, um Ihre Bedürfnisse anzupassen, beispielsweise in dem Beispiel, das ich bin Ich gebe Ihnen an, dass in keiner Phase die Abhängigkeiten kopiert werden sollen, die alternateLocation im tmp-Ordner enthält. Ich sage aber auch, dass mein neues Ziel Kopierabhängigkeiten sind. So in der Befehlszeile sein, dies wäre so etwas wie:
mvn dependency:copy-dependencies
Wenn Sie bemerken, ich habe jetzt die ausgabe zweimal konfiguriert. In der Ausführung bedeutet dies, dass es nur berücksichtigt wird, wenn Sie eine bestimmte Maven-Build-Phase wie Verpackung, sauber, Test, ... ausführen. Als erstes untergeordnetes Element des Plugin-Knotens bedeutet dies, dass es berücksichtigt wird, wenn die Befehlszeile explizit das Abhängigkeits-Plugin aufruft, was Sie wollen.
Sie können mehr über die Maven-Abhängigkeit-Plugin finden Sie hier:
Da Sie die Abhängigkeiten und die Quellen zur gleichen Zeit benötigen, der beste Weg, ich denken kann, ist indem maven normalerweise ohne einen impliziten Aufruf des eigentlichen Plugins läuft. Wenn Ihr es durch die Post-clean Phase laufen (dh mvn post-clean) wird es die beiden folgenden Ziele aus:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<configuration>
<outputDirectory>/tmp/alternateLocation</outputDirectory>
</configuration>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>post-clean</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>/tmp/alternateLocation</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
<execution>
<id>sources</id>
<phase>post-clean</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<classifier>sources</classifier>
<outputDirectory>/tmp/alternateLocation</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
Es wird immer die Kopie in den Zielordner, aber nicht überschreiben wenn die Dateien schon da sind. Ich musste eine nicht häufig genutzte Phase wählen. post-clean schien hier der beste Kandidat zu sein. Ich denke nur, dass ich diese Art von Build isolieren möchte. Post-Clean räumt auch den Build auf. Wenn Sie dieses Plug-In einfach jedes Mal verwenden möchten, wenn Sie einen Build erstellen, dann würde ich empfehlen, es auf die saubere oder vielleicht die Installation Phase zu setzen. So passiert es immer im Hintergrund und du brauchst dir keine Sorgen zu machen.
Ich bezweifle, dass es die Quellen der Abhängigkeiten holt. :( –
Jetzt ist es! :) –