将.m2存储库导入Artifactory失败

时间:2013-08-15 21:10:10

标签: maven artifactory

免责声明 - 与我交谈!

我是Artifactory和Maven的完整n00b。我已经搜索了我在网上找到的所有内容,并且真的无法找到任何其他的东西,它应该很容易导入!正因为如此,我很难找到帮助,因为我没想到。

我毫不怀疑这是因为我对Maven,Artifactory和Nexus缺乏了解。我只是不知道该怎么做才能修复它。旧机器有Maven并指向Nexus存储库。

假设

我的理解是,Maven .m2文件夹应该是Maven结构的存储库,我应该可以导入它吗?

导出.m2目录

我让rsynch转移了整个.m2目录。这是.m2目录的片段,仅查看antlr:

.m2/
|
| - settings.xml
| + repository/
|   |
|   + antlr/
|     |
|     + antlr/
|       |
|       + 2.7.7/
|         |
|         - contains jars, pom, sha1 files
|
|
| + org/
|   |
|   + antlr/
|     |
|     + antlr-master/...
|     + stringtemplate/...
|     + antlr-runtime/
|       |
|       + 3.1.3/
|         |
|         - contains poms, sha1, jars

所以,我想知道,这实际上是否支持Maven2布局?看起来有些罐子没有落入org.package格式。上述内容与here的导入布局格式不匹配吗?据我所知,确实如此。

仅记录“找不到存储库”

我试过

  • 指向根.m2文件夹,
  • 指向repository/org
  • 等子文件夹
  • 压缩整个.m2文件夹,
  • 将其压缩到不同的子文件夹,例如org文件夹
  • 我试过拿出一件物品,指着蚂蚁......

似乎没什么用。我启用了详细日志,我知道它会重定向到导入导出日志,并且应该提供更多信息。它所说的全部都没有找到存储库。

我不知道该指向何处或做什么。非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

有两个选项:

  1. 导入许多存储库。为此,您需要配置存储库以及与存储库名称匹配的目录,在该存储库名称下找到groupId目录。因此,假设您有一个名为“repository”的存储库,您将指向.m2

  2. 导入单个存储库的内容。为此,您选择一个现有存储库并指向内容的根(存储库)。

答案 1 :(得分:1)

我想你问的是错误的问题。无需将.m2导入Artifactory。通常,您的工具链应该以这种方式工作:

  • IDE:创建源代码,编译文件,生成用于开发的JAR。
  • Maven:搜索和下载库,使用定义的生命周期构建工件。
  • Artifactory / Nexus:部署自己创建的工件,以便其他人可以使用它们。从公众镜像/代理存储库以加快下载速度。

所以我不明白你为什么要使用m2导入Artifactory或Nexus。执行以下步骤以使链工作。

  1. 设置Artifactory / Nexus,以便它们连接到Internet。当您要求Artifactory / Nexus获取log4j时,应自动下载并缓存。
  2. 确保您已设置的存储库管理器作为镜像包含在Maven安装的settings.xml中。有关详细信息,请参阅documentation of settings
  3. 当您现在使用Maven进行构建时,将完成以下操作:

    1. Maven在其本地.m2存储库中搜索构建所需的资源(插件和库)。
    2. 如果找不到某些内容,它会转到镜像,并在那里搜索。这是您当地安装的Artifactory或Nexus,现在可以在自己的数据库中搜索。
    3. 如果找不到资源,则会在世界上已知的存储库中搜索(并下载)。
    4. 找到的资源现在存储在您的Artifactory或Nexus中,因此当其他人使用相同的存储库管理器时,它们会立即发送。
    5. 最后,它会缓存在您当地的Maven存储库.m2中。