web-dev-qa-db-ja.com

Maven2のコマンドラインでプラグインのバージョンを設定します

デフォルトのクイックスタートMavenの例を生成し、mvn checkstyle:checkstyleと入力すると、常に最新のSNAPSHOTバージョンを使用しようとします。 Nexusサーバーではおそらく間違っていますが、Maven2のコマンドラインでプラグインのバージョンを2.5ではなくcheckstyleの2.6-SNAPSHOTに設定するにはどうすればよいですか?

C:\HelloWorld>mvn checkstyle:checkstyle
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'checkstyle'.
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error building POM (may not be this project's POM).

Project ID: org.Apache.maven.plugins:maven-checkstyle-plugin

Reason: Error getting POM for 'org.Apache.maven.plugins:maven-checkstyle-plugin' from  the repository: Failed to resolve artifact, possibly due to a repository list that is not appropriately equipped for this artifact's metadata.
  org.Apache.maven.plugins:maven-checkstyle-plugin:pom:2.6-SNAPSHOT

from the specified remote repositories:
  nexus (http://localhost:9081/nexus/content/groups/public)

for project org.Apache.maven.plugins:maven-checkstyle-plugin

mvn checkstyle:2.5:checkstyleかもしれないと思いますが、残念ながらそうではありません。

確かにpom.xmlでビルドの依存関係を設定すると機能しますが、コマンドラインがどのように機能するかを確認したいと思います。

40
Larry Cai

ローカルリポジトリにインストールされているプラ​​グインの最新バージョンを実行したくない場合は、バージョン番号を設定する必要があります。そのためには、次の形式で完全修飾目標を指定する必要があります。

mvn groupID:artifactID:version:goal

だからあなたの場合:

mvn org.Apache.maven.plugins:maven-checkstyle-plugin:2.5:checkstyle
69
Pascal Thivent
mvn org.Apache.maven.plugins:maven-site-plugin:3.7.1:site
1

新しいバージョンのmaven(3.3.9)での私の経験は少し異なります。オフラインモードでMavenを実行していない場合、ローカルリポジトリにあるものに関係なく、常にリモートリポジトリに移動します。また、(maven-metadata.xmlに基づく)新しいバージョンが見つかった場合は、そのバージョンをダウンロードして使用します。さらに、複数のリポジトリを同時にスキャンします。

[INFO] ------------------------------------------------------------------------
[DEBUG] Resolving plugin version for com.phoenixnap.oss:springmvc-raml-plugin
[DEBUG] Could not find metadata com.phoenixnap.oss:springmvc-raml-plugin/maven-metadata.xml in local (/home/yuranos/.m2/repository)
[DEBUG] Using transporter WagonTransporter with priority -1.0 for https://repo.spring.io/libs-milestone
[DEBUG] Using transporter WagonTransporter with priority -1.0 for https://repo.spring.io/milestone
[DEBUG] Using transporter WagonTransporter with priority -1.0 for https://repo.maven.Apache.org/maven2
[DEBUG] Using transporter WagonTransporter with priority -1.0 for https://repo.spring.io/snapshot
[DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for https://repo.spring.io/libs-milestone
[DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for https://repo.spring.io/milestone
[DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for https://repo.maven.Apache.org/maven2
[DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for https://repo.spring.io/snapshot
Downloading: https://repo.spring.io/libs-milestone/com/phoenixnap/oss/springmvc-raml-plugin/maven-metadata.xml
Downloading: https://repo.spring.io/snapshot/com/phoenixnap/oss/springmvc-raml-plugin/maven-metadata.xml
Downloading: https://repo.maven.Apache.org/maven2/com/phoenixnap/oss/springmvc-raml-plugin/maven-metadata.xml
Downloading: https://repo.spring.io/milestone/com/phoenixnap/oss/springmvc-raml-plugin/maven-metadata.xml
[DEBUG] Writing tracking file /home/yuranos/.m2/repository/com/phoenixnap/oss/springmvc-raml-plugin/resolver-status.properties
[DEBUG] Writing tracking file /home/yuranos/.m2/repository/com/phoenixnap/oss/springmvc-raml-plugin/resolver-status.properties
Downloaded: https://repo.maven.Apache.org/maven2/com/phoenixnap/oss/springmvc-raml-plugin/maven-metadata.xml (2 KB at 1.0 KB/sec)
[DEBUG] Writing tracking file /home/yuranos/.m2/repository/com/phoenixnap/oss/springmvc-raml-plugin/resolver-status.properties
Downloaded: https://repo.spring.io/libs-milestone/com/phoenixnap/oss/springmvc-raml-plugin/maven-metadata.xml (2 KB at 0.9 KB/sec)
[DEBUG] Writing tracking file /home/yuranos/.m2/repository/com/phoenixnap/oss/springmvc-raml-plugin/resolver-status.properties
[DEBUG] Could not find metadata com.phoenixnap.oss:springmvc-raml-plugin/maven-metadata.xml in spring-snapshots (https://repo.spring.io/snapshot)
[DEBUG] Could not find metadata com.phoenixnap.oss:springmvc-raml-plugin/maven-metadata.xml in spring-milestones-libs (https://repo.spring.io/milestone)

さらに、Mavenは、いくつかのメタデータファイルを比較し、アーティファクトの最新バージョンを選択する方法を知っているようです。 Mavenは、resolver-status.propertiesに表示される内容に基づいて、Aetherを使用して依存関係を解決します。

    #NOTE: This is an Aether internal implementation file, its format can be changed without prior notice.
#Mon Feb 19 23:41:24 EET 2018
maven-metadata-spring-milestones.xml.lastUpdated=1519076484366
maven-metadata-spring-snapshots.xml.error=
maven-metadata-central.xml.lastUpdated=1519076484205
maven-metadata-spring-snapshots.xml.lastUpdated=1519076484107
maven-metadata-spring-milestones-libs.xml.lastUpdated=1519076484105
maven-metadata-spring-milestones-libs.xml.error=
0
yuranos87

次のものも使用できます。

mvn {あなたのgroupId}:{あなたのartifactId}:{あなたのバージョン}:{あなたの目標}

0
Sunil