小编典典

如何在一个命令行中下载特定的 Maven 工件?

all

我可以通过 安装工件install:install-file,但是如何下载工件?

例如:

mvn download:download-file -DgroupId=.. -DartifactId=.. -Dversion=LATEST

阅读 113

收藏
2022-06-29

共1个答案

小编典典

你可以使用maven 依赖插件dependency:get,它从 2.1 版开始就有一个很好的目标。不需要 pom,一切都发生在命令行上。

为了确保找到dependency:get目标,您需要明确告诉 maven 使用 2.1 版本,即您需要使用插件的完全限定名称,包括版本:

mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:get \
    -DrepoUrl=url \
    -Dartifact=groupId:artifactId:version

更新: 使用旧版本的 Maven(2.1 之前),可以dependency:get通过强制您的 Maven
副本使用给定版本的插件来正常运行(不使用完全限定的名称和版本)。

这可以按如下方式完成:

<settings>1. 在文件元素中添加以下行~/.m2/settings.xml

<usePluginRegistry>true</usePluginRegistry>

2. 添加文件~/.m2/plugin-registry.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<pluginRegistry xsi:schemaLocation="http://maven.apache.org/PLUGIN_REGISTRY/1.0.0 http://maven.apache.org/xsd/plugin-registry-1.0.0.xsd"
xmlns="http://maven.apache.org/PLUGIN_REGISTRY/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-dependency-plugin</artifactId>
      <useVersion>2.1</useVersion>
      <rejectedVersions/>
    </plugin>
  </plugins>
</pluginRegistry>

但这似乎不再适用于 maven 2.1/2.2。实际上,根据Introduction to the Plugin
Registry
plugin-registry.xml已经重新设计了功能(为了可移植性),并且 插件注册表目前在 Maven 2
中处于半休眠状态
。所以我认为我们现在必须使用长名称(当使用没有 pom 的插件时,这是背后的想法dependency:get)。

2022-06-29