0

Mavenを使用してコマンドラインからいくつかのアーティファクトをダウンロードしようとしています。私はアーティファクトの基本バージョンしか知りませんが、nexus リポジトリに個別のタイムスタンプがあります。

例えば:

アーティファクトには、nexus リポジトリにcom.mycompany.subject:any-artifact:3.0.0-SNAPSHOT:war:plugins次の座標があります。com.mycompany.subject:any-artifact:3.0.0-20161212.140040-1:war:plugins

次のようなアーティファクトをダウンロードしたい:

 mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:copy -Dartifact=com.mycompany.subject:any-artifact:3.0.0-SNAPSHOT:war:plugins -DoutputDirectory=./my-tmp 

ドキュメントで-Dmdep.useBaseVersionオプションを見つけましたが、これはダウンロードされたアーティファクトを基本バージョンでのみ保存します。

編集:

問題は、3.0.0-SNAPSHOT などのアーティファクトの基本バージョンしか知らないことです。上記のように nexus からダウンロードしようとすると、nexus のバージョンにタイムスタンプが付いているため失敗します。

maven-metadata.xml:

<metadata>
  <groupId>com.mycompany.subject</groupId>
  <artifactId>any-artifact</artifactId>
  <versioning>
    <versions>
        <version>3.0.0-SNAPSHOT</version>
    </versions>
    <lastUpdated>20161214160043</lastUpdated>
  </versioning>
</metadata>

エラースタックトレース:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.319 s
[INFO] Finished at: 2016-12-19T15:04:06+01:00
[INFO] Final Memory: 16M/298M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.10:copy (default-cli) on project standalone-pom: Unable to find artifact. Could not find artifact com.mycompany.subject:any-artifact:3.0.0-SNAPSHOT in <remote-repository-id> (https://<nexus-repo-url>/nexus/repository/<specified-repository>)
[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 ...
[ERROR]
[ERROR] Alternatively, if you host your own repository you can deploy the file there:
[ERROR] mvn deploy:deploy-file -DgroupId ...
[ERROR]
[ERROR]
[ERROR] com.mycompany.subject:any-artifact:3.0.0-SNAPSHOT
[ERROR]
[ERROR] from the specified remote repositories:
[ERROR] remote-repository-id (https://<nexus-repo-url>/nexus/repository/<specified-repository>),
[ERROR] -> [Help 1]
4

1 に答える 1

0

問題は、プロジェクトのリポジトリに pom.xml がないことです。したがって、maven はおそらくタイムスタンプなどを含む正確なバージョン番号を必要とします。

ここで、オプションを使用してアーティファクトをデプロイ-DgeneratePom=trueし、ベース バージョン番号のみを使用してリポジトリから最新のアーティファクトをダウンロードできます。

于 2016-12-27T09:02:10.227 に答える