4

我使用带有nexus 的maven 3.0 作为远程存储库。我想知道,有没有办法在不知道所有工件名称的情况下使用 maven 下载具有相同 groupId 的所有工件?换句话说,是否可以通过仅提及组 ID 自动从远程存储库下载所有工件?

例如,我想将组 com.example.here 中的所有工件下载到我的本地存储库:

<groupId>com.example.here</groupId>

文物:

<artifactId>a1</artifactId>
...
<artifactId>an</artifactId>

我想要的版本是最新的。

4

2 回答 2

4

您可以使用lftp(应该包含在许多 UNIX 发行版中)来镜像 Maven 存储库的一部分。由于存储库使用基于 groupID 的子目录,因此您可以使用它来获取属于某个组的所有工件。例如

$ lftp https://repository.jboss.org/nexus/content/groups/public/apache-xalan/ -e 'mirror .'

将获取 apache-xalan groupId 下的所有内容。

这可能不适用于每个 Maven 存储库。有些可能只允许访问某个深度的目录结构或根本不允许访问。

于 2014-01-31T13:32:14.757 回答
0

这是不可能的,因为 maven 中的依赖项需要由 groupId:artifactId:version:classifier 引用(可选)。

我能想到的一种方法是创建一个装配项目,该项目依赖于您要下载的所有项目,并且可以选择将版本设置为 LATEST。您可以使用 maven 程序集插件从依赖集创建存档。

于 2014-01-31T11:57:30.320 回答