我遇到过将Nexus配置为镜像的一切情况并不适合我的需求。我的Nexus存储库位于VPN后面。如果我无法访问Nexus存储库,我无法构建任何东西,因为它被配置为镜像。如果我想构建一个不依赖于我的Nexus存储库而又无法访问它的项目,该怎么办?这可以通过简单地使用中央存储库来构建,但由于镜像它不会看起来。
有没有人对如何解决这个问题有任何想法?我认为理想情况下我想首先看一下Nexus但是如果它不可访问我想看看中央存储库。我也愿意接受任何其他建议,以实现任何人可能拥有的相同目标。
答案 0 :(得分:2)
您需要配置多个存储库
http://maven.apache.org/guides/mini/guide-multiple-repositories.html
maven-3.0.4 \ conf \ settings.xml文件可以这样配置:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<pluginGroups />
<proxies />
<servers>
<server>
<!-- local repository have restricted access -->
<id>central</id>
<username>myusername</username>
<password>mypassword</password>
</server>
<server>
<id>LocalRepository</id>
<username>myusername</username>
<password>mypassword</password>
</server>
</servers>
<mirrors>
<mirror>
<id>central</id>
<mirrorOf>external:*</mirrorOf>
<name>Central</name>
<url>url to repository</url>
</mirror>
<mirror>
<id>LocalRepository</id>
<mirrorOf>LocalRepository</mirrorOf>
<name>repository</name>
<url>url to repository</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>central</id>
<repositories>
<repository>
<id>central</id>
<name>Central</name>
<url>http://central/</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>LocalRepository</id>
<name>specific repository</name>
<url>repository URL</url>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>central</activeProfile>
</activeProfiles>
</settings>
答案 1 :(得分:2)
此类要求的最佳方法是在开发计算机上本地运行Nexus。
易于安装和运行,您可以随时指向它。
将其配置为代理您的公司Nexus和Central。
然后当你离开VPN时......企业代理仓库将无法访问,但你仍然可以得到其他任何东西。 Nexus为您管理所有这些。
我多年来一直这样做,它允许我一直很容易地切换到不同的上下文。事实上,对于许多Maven用户来说,这是一种标准做法,也应该用于使用Gradle或SBT等远程存储库的其他工具。使事情变得更容易。