[英]Maven Internal Repository, Is it Really This Hard?
我有几个使用Maven的项目,我想在我的工作网络上运行一个内部存储库。 我有几个来自第三方的库,不能发布到野外,还有一些我们自己的库需要在网络中可用(包括我们的TeamCity CI服务器),但不能在网络外部署。 经过一些研究,我发现了三个关于如何实现这一目标的主要建议:Archiva,Artifactory和Nexus。 我已经尝试了每个,并且未能使用其中任何一个创建的内部存储库成功构建我的任何项目。
这让我相信我误解了某些事情或做错了什么。 有没有人知道一个教程,它将引导我完成设置和内部Maven存储库并将其与我的项目集成?
我只使用过Nexus,但我发现它很容易安装:
那时,我可以访问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进行存储库管理是了解如何使用存储库服务器执行的操作。 我发现唯一棘手的问题是,有些信息仅适用于他们的商业软件,而且他们并不太努力地宣传差异。
像Archiva和Nexus这样的知识库管理器不仅仅是一个内部存储库。 它们作为代理,可以避免与Maven中心或其他外部存储库联系。
对于内部存储库,您只需要一个具有Maven存储库结构的网络或HTTP可访问位置。 然后,您将其称为设置文件中的另一个存储库 。
<repository>
<id>my-internal-repo</id>
<url>http://myrepo.mycompany.com/</url>
</repository>
有关Maven文档的更多信息,请访问http://maven.apache.org/guides/introduction/introduction-to-repositories.html 。
我建议使用Nexus评估指南 (最新版本现在是2.13 ),它与Nexus Pro安装程序一起使用 ,但也可以与Nexus Open Source一起使用,用于代理和部署组件的简单用例。
这些示例也可以在github上获得 ,包括Maven,Ant / Ivy和Gradle的设置。 一旦您查看了示例并阅读了指南,您就可以轻松地以相同的方式设置项目。
当然,如果有任何问题,您可以随时在邮件列表上询问或与开发人员聊聊
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.