如果无法访问Nexus,请将Maven配置为使用Central Repository

时间:2014-09-18 18:20:29

标签: maven repository nexus

我遇到过将Nexus配置为镜像的一切情况并不适合我的需求。我的Nexus存储库位于VPN后面。如果我无法访问Nexus存储库,我无法构建任何东西,因为它被配置为镜像。如果我想构建一个不依赖于我的Nexus存储库而又无法访问它的项目,该怎么办?这可以通过简单地使用中央存储库来构建,但由于镜像它不会看起来。

有没有人对如何解决这个问题有任何想法?我认为理想情况下我想首先看一下Nexus但是如果它不可访问我想看看中央存储库。我也愿意接受任何其他建议,以实现任何人可能拥有的相同目标。

2 个答案:

答案 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等远程存储库的其他工具。使事情变得更容易。