web-dev-qa-db-ja.com

コマンドラインからMavenアーティファクトがリポジトリにあるかどうかを確認するにはどうすればよいですか?

コマンドラインから特定の座標(groupId.artifactId.version)はリポジトリにあります。

可能であれば、部分座標で実行できますか(例:artifactId.version)?リポジトリを指定できますか?

回避策を求めていません-ローカルリポジトリでファイル検索を開始するか、アーティファクトをPOMに入力してエラーを待つか、NexusをインストールしてUIを検索するだけです...

これは便利なことです。CLIにアクセスしたら、すばやく確認できると便利です。

19
kostja

これがあなたが得ると思う最も近いものです:

mvn dependency:get -Dartifact=g:a:v -o -DrepoUrl=file://path/to/your/repo

私はそれを試しました。アーティファクト(「junit:junit:4.8.2」など)がリポジトリにある場合は成功し、そうでない場合は失敗しますが、ローカルリポジトリへのフルパスをURLとして書き込む必要があります。

重要なのは、-o(オフライン)フラグを使用することです。そうしないと、Mavenは常に中央リポジトリをチェックするためです。

26

私はこのようなことについて聞いたことがありません。おそらくgetプラグインのdependencyゴールはどういうわけか近いですが、それでもあなたが探しているものとは正確には一致しません。そんなことはないのではないかと思います。ただし、必要なことを実行する独自のMavenプラグインを作成するのは非常に簡単です。 Aetherと呼ばれるMaven3の新しいアーティファクト解決メカニズムには、非常に優れたシンプルなAPIがあります。

とにかく、依存関係プラグインを見てください:

http://maven.Apache.org/plugins/maven-dependency-plugin/get-mojo.html

1