1

免责声明 - 跟我说话吧!

我是 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 格式。以上内容与此处的导入布局格式不匹配吗?据我所知,确实如此。

日志只显示“未找到存储库”

我试过了

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

似乎没有任何效果。我启用了详细日志,我知道它会重定向到导入导出日志,并且应该提供更多信息。它所说的只是没有找到存储库。

我不知道该指向哪里或该做什么。任何帮助是极大的赞赏!

4

2 回答 2

1

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

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

所以我不明白为什么你应该使用m2Artifactory 或 Nexus 的导入。执行以下步骤以使链条正常工作。

  1. 设置 Artifactory / Nexus,使它们连接到 Internet。然后,当您要求 Artifactory / Nexus 获取log4j时,它应该会自动下载并为您缓存。
  2. 确保您设置的存储库管理器settings.xml作为镜像包含在您的 Maven 安装中。有关详细信息,请参阅设置文档

当您现在使用 Maven 进行构建时,将完成以下操作:

  1. Maven 在其本地.m2存储库中搜索构建所需的资源(插件和库)。
  2. 如果一些没有找到,它会去镜子,并在那里搜索。这是您本地安装的 Artifactory 或 Nexus,现在可以在自己的数据库中搜索。
  3. 如果也找不到资源,则会在世界上已知的存储库中搜索(并下载)。
  4. 找到的资源现在存储在您的 Artifactory 或 Nexus 中,因此当其他人使用相同的存储库管理器时,他们将立即交付。
  5. 最后,它被缓存在您的本地 Maven 存储库.m2中。
于 2013-08-16T11:18:48.930 回答
1

有2个选项:

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

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

于 2013-08-16T07:19:51.900 回答