gpt4 book ai didi

java - 从命令行使用特定插件的特定路径运行 Maven

转载 作者:行者123 更新时间:2023-11-30 07:08:46 24 4
gpt4 key购买 nike

我需要从命令行执行特定的 Maven 插件。例如,下面我执行特定版本的 Maven Surefire Plugin 来测试 Java 项目:

mvn org.apache.maven.plugins:maven-surefire-plugin:2.19-SNAPSHOT:test

但是,上面假设在默认 Maven 存储库路径中找到 Surefire 插件 2.19。现在,我的问题是,如果我想使用具有特定路径(不是 Maven 默认路径)的插件,我应该使用命令行做什么?我期望类似以下内容,而不修改 pom.xml:

mvn /path/to/some/jar/version/org.apache.maven.plugins:maven-surefire-plugin:2.19-SNAPSHOT:test

或者更一般地说,对于以下调用

mvn groupId:artifactId:version:goal

我需要在某个地方指定一个自定义路径来执行其目标

mvn /some/path/to/groupId:artifactId:version:goal

另一方面,如果 Maven 不支持,请告诉我。

最佳答案

这不是它的工作原理。 Maven 将始终在本地存储库中查找 Artifact 。如果它在本地存储库中找不到它,它将尝试从配置的远程存储库下载它。

因此,您无需指定插件的路径。您指定安装该插件的本地存储库的路径。在此本地存储库中将安装您尝试调用的插件的所有依赖项。这也意味着您不能在任何地方“放置”插件的 JAR;它需要位于正确的存储库树目录中。对于 /my/local/repo 本地存储库,插件 groupId:artifactId:version 的 Artifact 必须位于 /my/local/repo/groupId/artifactId/version 并命名为 artifactId-version.jar(和 .pom)。同样,该插件的依赖项的位置必须遵循该目录结构。

默认情况下,本地存储库位于~/.m2/repository内。但您可以通过以下方式更改:

  1. 指定 maven.repo.local命令行上的系统属性,例如使用 mvn -Dmaven.repo.local=/path/to/local/repo groupId:artifactId:version:goal;
  2. 使用自定义 settings.xml 并告诉 Maven 使用它 with the -s command line option 。它将包含:

    <settings>
    <localRepository>/path/to/local/repo</localRepository>
    </settings>

    并与mvn -s/path/to/settings.xml groupId:artifactId:version:goal

  3. 一起使用

关于java - 从命令行使用特定插件的特定路径运行 Maven,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39577859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com