代码之家  ›  专栏  ›  技术社区  ›  Larry Cai

在Maven 2中的命令行上设置插件版本

  •  34
  • Larry Cai  · 技术社区  · 16 年前

    我生成默认的quickstart Maven示例,并键入 mvn checkstyle:checkstyle ,它总是尝试使用最新的 SNAPSHOT 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 ,它会工作,但我想看看命令行如何工作。

    4 回复  |  直到 8 年前
        1
  •  76
  •   Pascal Thivent    16 年前

    如果不想运行本地存储库中安装的插件的最新版本,则需要设置版本号。为此,您需要以以下形式指定一个完全限定的目标:

    mvn groupID:artifactID:version:goal
    

    所以在你的情况下:

    mvn org.apache.maven.plugins:maven-checkstyle-plugin:2.5:checkstyle
    
        2
  •  1
  •   yuranos    8 年前

    我对新版本maven(3.3.9)的体验略有不同。如果我不是在离线模式下运行maven,那么无论我在本地的repo中有什么,它都将用于远程repo。 如果它找到一个更新的版本(基于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似乎知道如何比较几个元数据文件并选择工件的最新版本。 resolver-status.properties :

        #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=
    
        3
  •  1
  •   Pang Ajmal PraveeN    7 年前
    mvn org.apache.maven.plugins:maven-site-plugin:3.7.1:site
    
        4
  •  0
  •   Sunil    8 年前

    您还可以使用:

    mvn{your groupId}:{your artifactId}:{your version}:{your goal}

    推荐文章