特定の Maven アーティファクトを 1 つのコマンドラインでダウンロードするにはどうすればよいでしょうか? 質問する

特定の Maven アーティファクトを 1 つのコマンドラインでダウンロードするにはどうすればよいでしょうか? 質問する

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

例えば:

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

ベストアンサー1

2020 年代の Maven の最新バージョン (3.x) では、プラグインのバージョンとリポジトリの URL について心配する必要はなく、次の操作を実行できるはずです。

mvn dependency:get -Dartifact=group-id:artefact-id:version

元の回答

バージョン 2.1 以降、優れた目標を持つMaven 依存関係プラグインを使用できますdependency:get。POM は必要なく、すべてがコマンド ラインで実行されます。

ゴールを確実に見つけるにはdependency:get、バージョン 2.1 を使用するように Maven に明示的に指示する必要があります。つまり、バージョンを含むプラグインの完全修飾名を使用する必要があります。

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

更新: Maven の古いバージョン (2.1 より前) では、Maven のコピーで特定のバージョンのプラグインを使用するように強制することで、(完全修飾名とバージョンを使用せずに) 通常どおり実行できますdependency:get

これは次のように実行できます。

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

<usePluginRegistry>true</usePluginRegistry>

~/.m2/plugin-registry.xml2.次の内容のファイルを追加します。

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

おすすめ記事