1. ホーム
  2. maven-2

[解決済み] 1つのコマンドラインで特定のMavenアーティファクトをダウンロードするにはどうすればよいですか?

2022-04-17 21:25:18

質問

アーティファクトをインストールするには install:install-file , しかし、アーティファクトをダウンロードするにはどうすればよいのでしょうか?

例えば

mvn download:download-file -DgroupId=.. -DartifactId=.. -Dversion=LATEST

解決方法は?

を使用することができます。 maven 依存性プラグイン を持つ、素敵な dependency:get ゴールはバージョン2.1以来です。pomは不要で、すべてコマンドライン上で行われます。

を確実に見つけるために dependency:get つまり、バージョンを含むプラグインの完全修飾名を使用する必要があります。

mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:get \
    -DrepoUrl=url \
    -Dartifact=groupId:artifactId:version

UPDATEです。 古いバージョンの Maven (2.1 より前のバージョン) を使用した場合、Maven で dependency:get プラグインの指定されたバージョンを使用するように maven のコピーを強制することで、(完全修飾名とバージョンを使用せずに)普通に使用できます。

これは、以下のように行うことができます。

1. の中に次の行を追加します。 <settings> 要素の ~/.m2/settings.xml ファイルを作成します。

<usePluginRegistry>true</usePluginRegistry>

2. ファイルを追加する ~/.m2/plugin-registry.xml を以下の内容で作成します。

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

しかし、これはmaven 2.1/2.2ではもう動作しないようです。実は プラグインレジストリ入門 の機能は plugin-registry.xml は(移植性のために)再設計され プラグイン・レジストリは、現在 Maven 2 で半休止状態になっています。 . だから、今のところ長い名前を使うしかないと思います(pomなしでプラグインを使用する場合、これは dependency:get ).