Możesz użyć maven dependency plugin, który ma ładny cel dependency:get
od wersji 2.1. Nie ma potrzeby pom, wszystko dzieje się z linii poleceń.
Aby upewnić się, aby znaleźć cel dependency:get
, trzeba wyraźnie powiedzieć Maven używać wersji 2.1, czyli trzeba użyć pełnej nazwy wtyczki, w tym wersji:
mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:get \
-DrepoUrl=url \
-Dartifact=groupId:artifactId:version
AKTUALIZACJA: Ze starszymi wersjami Mavena (przed 2.1) możliwe jest normalne uruchamianie dependency:get
(bez używania pełnej nazwy i wersji) przez zmuszanie swojej kopii do używania danej wersji wtyczki.
Można to zrobić w następujący sposób:
1. Dodaj następujący wiersz w elemencie <settings>
swojego pliku ~/.m2/settings.xml
:
<usePluginRegistry>true</usePluginRegistry>
2. Dodaj plik ~/.m2/plugin-registry.xml
o następującej treści :
<?xml version="1.0" encoding="UTF-8"?>
<pluginRegistry xsi:schemaLocation="http://maven.apache.org/PLUGIN_REGISTRY/1.0.0 http://maven.apache.org/xsd/plugin-registry-1.0.0.xsd"
xmlns="http://maven.apache.org/PLUGIN_REGISTRY/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<useVersion>2.1</useVersion>
<rejectedVersions/>
</plugin>
</plugins>
</pluginRegistry>
Ale to nie wydaje się już działać z maven 2.1/2.2. W rzeczywistości, zgodnie z Introduction to the Plugin Registry, funkcje plugin-registry.xml
zostały przeprojektowane (dla przenośności), a rejestr wtyczek jest obecnie w stanie półprzymkniętym w obrębie Maven 2. Więc myślę, że musimy teraz używać długiej nazwy (gdy używamy wtyczki bez pom, która jest ideą dependency:get
).
Pamiętaj, że wtyczka chce "repoUrl", mimo że dokumentacja mówi "reositoryUrl". Może doprowadzić cię do szaleństwa, tak jak mnie! – zakmck
dokumenty (http: //maven.apache.org/plugins/maven-dependency-plugin/get-mojo.html) pokazuje zarówno parametry xml ( ... repositoryUrl>), jak i właściwości użytkowe wiersza poleceń (mvn ... -DrepoUrl = ".. . "). Ten konkretny przykład jest przestarzały, więc nie martw się; teraz jest teraz równomiernie zdalnym zbiorem (w obu zastosowaniach); ale zauważ, że parametr "miejsce docelowe" to własność użytkownika "-Ddest = ..."; eg => mvn org.apache.maven.plugins: maven-dependency-plugin: 2.5.1: get -DremoteRepositories = repo.maven.apache.org -Dartifact = org.apache.ant: ant: 1.8.1 -Dest = ant-1.8.1.jar (wynik: ant-1.8.1.jar w bieżącym katalogu) –
michael