在Maven的2,是否有可能指定适用于所有的镜子,但允许故障转移到直接存储库?
题
我明白建立一个Maven镜,如下面的吸引力的部分:
<mirror>
<id>nexus</id>
<name>Maven Repository</name>
<mirrorOf>*</mirrorOf>
<url>http://server:8081/nexus/content/groups/public</url>
</mirror>
...是,文档状态:
您可以强制的Maven通过使其镜像所有存储库请求使用一个单一的存储库。
然而,这是同样表示由具有*
镜设置在每个工作站的必须强>被迫要经过反射镜?
我问,因为我想每个工作站故障转移,直接连接到任何公共的资源,它知道在的Nexus无法解决依赖或插件的事件。 (在理想情况下,每个开发者必须根据需要添加额外的代理的存储库所需要的存取。然而,有时该访问不可用;有时Nexus的服务器停机;有时遭受Java堆误差)
这是“镜但继续并直接连接到公共回购”故障转移配置可能在Maven的2?它会在Maven的3'
解决方案
这是不可能在Maven 2中它可能会在Maven的3日后我们也考虑过在增加的Nexus这种可能性动态代理假象。底线是,大多数组织都希望在开发人员所使用的代理回购控制,因此该功能被证明是非常受欢迎的回购经理。
出于相同的原因,具有显影剂机直接落入访问回购管理器回购直接返回是不可取的。然后,你最终失去您获得代理缓存,共享,过滤等的所有优势。
其他提示
没有,没有故障转移模式。您可以从以往任何时候都到镜子<mirrorOf>*,!repository</mirrorOf>
排除某些库,或者你可以有两个settings.xml
文件的行为不同,使用--settings
如果需要切换。
一个答案(隐在我的问题)是,这是不可能的设计。在此票据由Jason范ZYL 的末尾处的注释表示
在实镜不被检查,目的。该方法仓库管理工作,这些天将严重打破,如果我们开始做这个。
此配置是可能的。它的伟大工程,有一个艰难的情况,但,如果项目层次大,不是所有的孩子有相同的父,你必须在这个部分,甚至他们的劲歌复制。这意味着比项目,该项目宣布这个假中央是其他地方一样,那就是默认回购看,你的要求会在项目的POM适当的行家中心或其他申报资料库。 美中不足的是:你使用插件X - 也许并没有意识到它实际上 - 和插件X取决于神器Y,在它自己的POM具有回购申报.... >>>在代理所有请求依存关系没有控制关系
另一种选择是具有用于项目的额外的settings.xml和 “供应” 它$ MVN -s的settings.xml
第三备选方案是具有全球的settings.xml如下,并激活仅在需要时-P关系,原因而不假中央储存库令人惊讶地工作。
<settings>
<mirrors>
<mirror>
<id>nexus</id>
<name>nexus</name>
<url>http://localhost:8082/nexus-webapp-1.6.0/content/groups/public</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
</activeProfiles>
</settings>
在另一个选项卡/窗口打开图像。