Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从命令行以特定路径运行maven到特定插件_Java_Maven_Plugins - Fatal编程技术网

Java 从命令行以特定路径运行maven到特定插件

Java 从命令行以特定路径运行maven到特定插件,java,maven,plugins,Java,Maven,Plugins,我需要从命令行执行一个特定的Maven插件。例如,在下面的示例中,我执行一个特定版本的Maven Surefire插件来测试Java项目: mvn org.apache.maven.plugins:maven-surefire-plugin:2.19-SNAPSHOT:test 但是,上面假设在默认的Maven存储库路径中找到surefire插件2.19。现在,我的问题是,如果我想使用具有特定路径(不是Maven默认路径)的插件,我应该使用命令行做什么?在不修改pom.xml的情况下,我希望得

我需要从命令行执行一个特定的Maven插件。例如,在下面的示例中,我执行一个特定版本的Maven Surefire插件来测试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将始终在本地存储库中查找工件。如果在您的本地存储库中找不到,它将尝试从配置的远程存储库下载

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

默认情况下,本地存储库位于
~/.m2/存储库
内。但你可以通过以下方式改变这一点:

  • 在命令行上指定系统属性,例如使用
    mvn-Dmaven.repo.local=/path/to/local/repo-groupId:artifactId:version:goal
  • 使用自定义的
    settings.xml
    并告诉Maven使用它。它将包括:

    <settings>
      <localRepository>/path/to/local/repo</localRepository>
    </settings>
    
    
    /路径/到/本地/回购
    
    并与mvn-s/path/to/settings.xml groupId:artifactId:version:goal一起使用


  • 已证实的这就回答了问题。谢谢