我使用maven 3.0和nexus作为远程存储库。 我想知道,有没有办法使用maven下载具有相同groupId的所有工件而不知道所有工件的名称?换句话说,是否可以通过仅提及组ID?
自动从远程存储库下载所有工件例如,我想将com.example.here组中的所有工件下载到我的本地存储库:
<groupId>com.example.here</groupId>
工件:
<artifactId>a1</artifactId>
...
<artifactId>an</artifactId>
我想要的版本是最新版本。
答案 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程序集插件从依赖关系集创建存档。