Maven:下载组中的所有工件

时间:2013-07-22 16:29:26

标签: maven maven-3 nexus

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

自动从远程存储库下载所有工件

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

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

工件:

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

我想要的版本是最新版本。

2 个答案:

答案 0 :(得分:3)

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

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

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

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

答案 1 :(得分:0)

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

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