6

以下のコマンドを使用して、コマンド ラインから Nexus から Maven jar をダウンロードしています。

call mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get -DrepoUrl=http://10.101.15.190:8081/nexus/content/repositories/releases/ -Dartifact=bits:update-service:1.0.3 -Ddest=Setups/Services/update-service.jar

しかし、私が得るのは依存関係のないjarです。Maven には、名前の依存関係を持つ jar が既に存在します。update-service-1.0.4-jar-with-dependencies.jar

私は次のことを試しました:

call mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get -DrepoUrl=http://10.101.15.190:8081/nexus/content/repositories/releases/ -Dartifact=bits:update-service:1.0.3[:packaging[:jar]] -Ddest=Setups/Services/update-service.jar

ただし、次のエラーが返されます。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.4:get (default-cli) on project standalone-pom: Couldn't download artifact: Missing:
[ERROR] ----------
[ERROR] 1) bits:update-service:packaging[:jar]]:1.0.3[
[ERROR]
[ERROR] Try downloading the file manually from the project website.
[ERROR]
[ERROR] Then, install it using the command:
[ERROR] mvn install:install-file -DgroupId=bits -DartifactId=update-service -Dversion=1.0.3[ -Dclassifier=jar]] -Dpackaging=packaging[ -Dfile=/path/to/file
[ERROR]
[ERROR] Alternatively, if you host your own repository you can deploy the file there:
[ERROR] mvn deploy:deploy-file -DgroupId=bits -DartifactId=update-service -Dversion=1.0.3[ -Dclassifier=jar]] -Dpackaging=packaging[ -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]
[ERROR]
[ERROR] Path to dependency:
[ERROR] 1) org.apache.maven.plugins:maven-downloader-plugin:jar:1.0
[ERROR] 2) bits:update-service:packaging[:jar]]:1.0.3[
[ERROR]
[ERROR] ----------
[ERROR] 1 required artifact is missing.
[ERROR]
[ERROR] for artifact:
[ERROR] org.apache.maven.plugins:maven-downloader-plugin:jar:1.0
[ERROR]
[ERROR] from the specified remote repositories:
[ERROR] central (https://repo.maven.apache.org/maven2, releases=true, snapshots=false),
[ERROR] temp (http://10.101.15.190:8081/nexus/content/repositories/releases/, releases=true, snapshots=true)
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

質問: 依存関係のある jar をダウンロードする正しい方法は何ですか?

4

2 に答える 2

4

jar-with-dependenciesこの場合は Mavenclassifierです:

分類子により、同じ POM から構築されたが内容が異なるアーティファクトを区別できます。これはオプションの任意の文字列であり、存在する場合はアーティファクト名のバージョン番号の直後に追加されます。

つまり、1.0.4jar とその依存関係のあるバリアントは、分類子による Maven 座標が異なります。

したがって、maven-dependency-pluginとそのgetゴールを使用しclassifierて、classifierオプションで a を指定できます。

ダウンロードするアーティファクトの分類子。が使用されている場合は無視artifactされます。

ただし、実際にはartifact既にオプションを使用しているため、ドキュメントに従って上記のオプションは無視されます。ただし、オプション
のドキュメントを見ると:artifact

形式の文字列groupId:artifactId:version[:packaging][:classifier]

その最後の (オプションの) トークンを見てください[:classifier]。これはまさにあなたが欠けているものです。

オプションartifactは次のようになります。

-Dartifact=bits:update-service:1.0.4:jar:jar-with-dependencies

注:実際には、次を指定するときにすでに間違って使用しています:

-Dartifact=bits:update-service:1.0.3[:packaging[:jar]]

角かっこ[..]はオプションのパラメーターを示します。コマンド ライン呼び出しで指定しないでください。さらに、packagingそこにある文字列は、入力する値を指定します。繰り返しますが、指定する必要はありませんが、対応する値 (この場合はjar) に置き換えるだけです。

于 2016-06-23T07:54:54.540 に答える
1

その方法を示す例を作成しました。
バージョン 4.2.5.RELEASE の spring-webmvc のすべての依存関係をダウンロードしたいと思います。
1) ローカル リポジトリにない場合は、webmvc の pom が必要です。spring-webmvc がすでにローカル リポジトリにある場合は、1) をスキップします。
2) ダウンロードした pom に関連するすべての依存関係をダウンロードできます。

  1. ポンポンのダウンロード

C:\temp\spring_web_mvc>mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:get -DgroupId=org.springframework -DartifactId=spring-webmvc -Dversion=4.2.5.RELEASE -Dtype=pom

  1. すべての依存関係をダウンロードする

C:\temp\spring_web_mvc>mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:copy-dependencies -f C:\repository2\org\springframework\spring-webmvc\4.2.5.RELEASE\spring- webmvc-4.2.5.RELEASE.pom -DoutputDirectory=C:\TEMP

[情報] プロジェクトをスキャンしています...
[警告] org.springframework:spring-webmvc:jar:4.2.5.RELEASE の有効なモデルを構築中にいくつかの問題が発生しました
...
[情報] ------- -------------------------------------------------- ---------------
[情報] Spring Web MVC 4.2.5.RELEASE の構築
[情報] -------------------- -------------------------------------------------- --
[警告] com.lowagie:itext:jar:2.1.7.js4 の POM がありません。依存関係の情報がありません
[情報]
[情報] --- maven-dependency-plugin:2.10:copy-dependencies (デフォルト-cli) @ spring-webmvc ---
[警告] org.apache.maven.doxia:doxia-sink-api:jar:1.0 の POM は無効です。推移的な依存関係 (存在する場合) は利用できません。詳細については、デバッグ ログを有効にしてください
[INFO] org.apache. tiles:tiles-request-mustache:jar:1.0.6 は宛先に既に存在します。
[情報] com.fasterxml.jackson.dataformat:jackson-dataformat-xml:jar:2.6.5 は既に宛先に存在します。
[情報] org.apache.tiles:tiles-mvel:jar:3.0.5 は既に宛先に存在します。
[情報] org.apache.tiles:tiles-jsp:jar:2.2.2 は既に宛先に存在します。
[情報] org.jfree:jcommon:jar:1.0.23 は宛先に既に存在します。
...
[情報] org.apache.tiles:tiles-extras:jar:3.0.5 は既に宛先に存在します。
[情報] - - - - - - - - - - - - - - - - - - - - - - - - -------------------------
[情報] ビルド成功
[情報] ----------------- -------------------------------------------------- -----
[情報] 合計時間: 4.095 秒
[情報] 終了時刻: 2016-06-23T11:06:03+02:00
[情報] 最終記憶: 14M/241M
[情報] ------ -------------------------------------------------- ----------------

結果:

C:\temp\spring_web_mvc>dir
ドライブ C のボリュームにはラベルがありません。
ボリュームシリアル番号は

C:\temp\spring_web_mvc

23/06/2016 11:05 の F400-3CE5 ディレクトリです。
23/06/2016 11:05 ..
23/06/2016 10:24 4,467 aopalliance-1.0.jar
23/06/2016 10:24 192,035 bcmail-jdk14-1.38.jar
23/06/2016 10:24 192,035 bcmail -jdk14-138.jar ...

于 2016-06-23T09:13:26.947 に答える