Maven内部存储库,这真的很难吗?

Bre*_*gan 6 nexus artifactory maven

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

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

Nat*_*rot 13

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

  1. 访问http://www.sonatype.org/nexus/go下载OSS版本
  2. 获取'WAR'分发
  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>
Run Code Online (Sandbox Code Playgroud)

在我的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>
Run Code Online (Sandbox Code Playgroud)

为了超越这个,学习曲线跳了很多,但我发现Sonatype的在线书籍非常好. 使用Nexus进行存储库管理是了解如何使用存储库服务器执行的操作.我发现唯一棘手的问题是,有些信息仅适用于他们的商业软件,而且他们并不太努力地宣传差异.

  • 我建议不要使用战争,而是使用包含Nexus和Jetty的安装程序(tar.gz或zip文件).我很高兴你喜欢这本书.在区分专业和oss ...在网站上的那些.而且我们不断为oss添加更多的东西以及专业和事物的变化,所以这本书没有做出很大的区分. (3认同)

Sri*_*ran 7

像Archiva和Nexus这样的知识库管理器不仅仅是一个内部存储库.它们作为代理,可以避免与Maven中心或其他外部存储库联系.

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

<repository>
  <id>my-internal-repo</id>
  <url>http://myrepo.mycompany.com/</url>
</repository>
Run Code Online (Sandbox Code Playgroud)

有关Maven文档的更多信息,请访问http://maven.apache.org/guides/introduction/introduction-to-repositories.html.


Man*_*ser 4

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

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

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