Artifactory不导入所有工件

时间:2017-08-22 18:00:50

标签: maven artifactory

我负责在大型企业环境中安装Artifactory实例,在这种环境中,Internet访问不是一个选项。所有Maven构建都必须从内部(Intranet)Maven存储库获取依赖项。镜像已添加到settings.xml文件中,并设置为所有内容的默认镜像。

然后我设置了一台连接到Internet的独立计算机,以下载所有必要的依赖项(spring,struts2等),这些依赖项被认可用于整个组织的不同项目。我使用mvn archetype:generate创建了一个虚拟maven项目,以便为我的本地存储库填充所有必要的东西,以便Maven按预期工作。

安装Artifactory进展顺利,导入Spring和Struts2等特定依赖项也是如此。但是,运行mvn archetype:generate会返回一些错误:

The POM for org.apache.maven.plugins:maven-install-plugin:jar:2.4 is missing, no dependency information available.

因此,我意识到我需要将Maven插件导入Artifactory实例,我做了。实际上,我已经在独立计算机上压缩了整个C:\ Users \ MYUSER.m2 \ repository文件夹,将zip文件传送到Artifactory服务器,然后使用Artifactory管理员帐户使用Admin>导入所有内容。进口和出口>存储库>从Zip导入存储库。

Artifactory说导入成功完成,但我仍然得到同样的错误抱怨一些Maven插件丢失。查看Artifactory中的工件页面,我发现它缺少一些Maven插件工件,它们是zip 的一部分。 Artifactory没有导入我的zip文件中的所有内容。

组织/阿帕奇/行家/插件

  • maven-antrun-plugin
  • maven-archetype-plugin
  • 行家组装-插件
  • maven-clean-plugin
  • maven-compiler-plugin
  • 行家依赖性-插件
  • maven-deploy-plugin
  • maven-install-plugin
  • maven-plugins
  • 行家离型插件
  • maven-resources-plugin
  • maven-site-plugin
  • 行家-万无一失-插件
  • 行家-战争插件

在org / apache / maven / plugins下的Artifactory中导入

  • maven-clean-plugin
  • maven-compiler-plugin
  • maven-plugins
  • maven-resources-plugin
  • 行家-万无一失-插件
  • 行家-战争插件

所以我的问题是,为什么Artifactory在没有让我知道它的情况下默默地省略导入一些依赖项?

谢谢

更新

即使我在org / apache / maven / plugins下的独立计算机上浏览Maven插件(管理>导入&导出>存储库>从路径导入存储库),Artifactory甚至不会显示他们给我。它只会显示我上面列出的那些。

更新2017-08-23

artifactory.log

2017-08-23 08:18:13,100 [art-exec-1] [INFO ] (o.a.r.d.i.DbRepoImportHandler:149) - repo-endorsed import started C:\dev\repository
    2017-08-23 08:18:40,468 [art-exec-1] [INFO ] (o.a.r.d.i.ImportExportAccumulator:98) - repo-endorsed imported 1000 items (574 files 426 folders 36.58 ips) 0 skipped items (0 files 0 folders)...
    2017-08-23 08:19:06,906 [art-exec-1] [INFO ] (o.a.r.d.i.ImportExportAccumulator:98) - repo-endorsed imported 2000 items (1129 files 871 folders 37.18 ips) 0 skipped items (0 files 0 folders)...
    2017-08-23 08:19:15,829 [art-exec-1] [INFO ] (o.a.r.d.i.DbRepoImportHandler:199) - repo-endorsed import finished with: 2264 Items imported: (1262 files 1002 folders). Duration: 1.04 minutes IPS: 36.14 Target: 'C:\dev\repository'
    2017-08-23 08:19:15,829 [art-exec-3] [INFO ] (o.a.r.s.ImportJob   :127) - Import of 1 repositories completed

import.export.log

我看到了类似这样的消息,但工件按预期导入:

2017-08-23 08:18:36,655 [DEBUG] (o.a.a.c.ImportExportStatusHolder:43) No Metadata entries found for C:\dev\repository\org\apache\maven\plugins\maven-compiler-plugin\3.1\maven-compiler-plugin-3.1.jar

查看这些消息,我没有看到任何与maven-install-plugin等缺失部分相关的内容。貌似Artifactory实际上是跳过了它。

1 个答案:

答案 0 :(得分:1)

感谢您添加其他信息。 只是为了确保,当你要去:

C:\dev\repository\org\apache\maven\plugins\maven-compiler-plugin\3.1

你能看到maven-compiler-plugin-3.1.pom文件吗?

如果Artifactory没有pom文件,它将不会在文件夹级别生成maven-metadata文件,这意味着当您运行maven构建时,maven客户端将无法获得它。

要解决此问题,如果这确实是一个缺失的POM,您可以通过UI手动将此JAR文件部署到该位置,并使用“自动生成POM”功能,该功能将为该JAR创建一个POM文件, maven-metadata计算。