6

我有几个使用 Maven 的项目,我想在我的工作网络上运行一个内部存储库。我有几个来自第三方的库,不能发布到野外,还有一些我们自己的库需要在网络内可用(包括我们的 TeamCity CI 服务器),但不能部署在网络外。经过一番研究,我发现了关于如何完成此任务的三个主要建议:Archiva、Artifactory 和 Nexus。我已经尝试了每一个,但都未能使用它们中的任何一个创建的内部存储库成功构建我的任何项目。

这使我相信我误解了某事或做错了什么。有谁知道一个教程,它将引导我完成设置和内部 Maven 存储库并将其与我的项目集成?

4

3 回答 3

13

我只使用过 Nexus,但我发现它很容易安装:

  1. http://www.sonatype.org/nexus/go下载OSS版本
  2. 获取“战争”分布
  3. 通过 Web 应用程序管理器在我的 Tomcat 安装中安装 servlet

那时,我可以访问http://myserver:8080/nexus以查看一切正常。

对于肤浅的设置,我将默认密码添加到我的settings.xml

    <servers>
            <server>
                    <id>my-snapshots</id>
                    <username>admin</username>
                    <password>admin123</password>
            </server>
            <server>
                    <id>my-releases</id>
                    <username>admin</username>
                    <password>admin123</password>
            </server>
    </servers>

在我的 POM 文件中:

    <distributionManagement>
            <snapshotRepository>
                    <id>my-snapshots</id>
                    <name>My internal repository</name>
                    <url>http://myserver:8080/nexus/content/repositories/snapshots</url>
            </snapshotRepository>
            <repository>
                    <id>my-releases</id>
                    <name>My internal repository</name>
                    <url>http://myserver:8080/nexus/content/repositories/releases</url>
            </repository>
    </distributionManagement>

除此之外,学习曲线上升了很多,但我发现 Sonatype 的在线书籍非常好。 使用 Nexus 进行存储库管理是一种了解您可以使用存储库服务器做什么的方法。我发现唯一棘手的是某些信息仅适用于他们的商业软件,他们不会太努力地宣传差异。

于 2013-04-11T18:40:32.207 回答
7

Archiva 和 Nexus 等存储库管理器不仅仅是一个内部存储库。它们充当代理,避免访问 Maven 中央或其他外部存储库。

对于内部存储库,您只需要一个具有 Maven 存储库结构的网络或 HTTP 可访问位置。然后您将其称为设置文件中的另一个存储库

<repository>
  <id>my-internal-repo</id>
  <url>http://myrepo.mycompany.com/</url>
</repository>

在http://maven.apache.org/guides/introduction/introduction-to-repositories.html的 Maven 文档中查看更多信息。

于 2013-04-11T19:40:15.407 回答
4

我建议使用Nexus Pro Installer附带的Nexus 评估指南(最新可用版本是2.13 ) ,但也适用于Nexus Open Source代理和部署组件的简单用例。

这些示例也可以在github上找到,包括 Maven、Ant/Ivy 和 Gradle 的设置。查看示例并阅读指南后,您将能够以相同的方式轻松设置项目。

当然,如果有任何问题,您可以随时在邮件列表中询问或在 hipchat 上与开发人员聊天

于 2013-04-12T05:06:54.483 回答