我有一些个人项目,很少有公司项目。企业项目使用镜像的企业SVN存储库来实现maven依赖关系。我想以这样的方式配置我的settings.xml,以便首先根据我的公司镜像检查依赖项。只有在这里找不到依赖关系时(对于我的个人项目),它才应该检查原始的" central"由我的公司回购镜像的回购。这可能吗。下面是我现在所拥有的一个片段,但它没有击中中心"需要时回购。感谢。
<servers>
<server>
<id>central-mirror</id>
<username>myusername</username>
<password>mypassword</password>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
<configuration></configuration>
</server>
</servers>
<mirrors>
<mirror>
<id>central-mirror</id>
<url>https://url.to.my/mirror</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<proxies>
<proxy>
<id>proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>my.corporate.proxy</host>
<port>8080</port>
<nonProxyHosts>localhost|*.my.corporate.proxy</nonProxyHosts>
</proxy>
答案 0 :(得分:8)
在经过一些试验和错误后,我终于想出了如何做到这一点。我希望这会有助于其他许多人。下面是我更新的settings.xml。对于Eclipse中的任何项目,maven首先尝试从我的公司镜像下载libs。只有当它无法在那里找到它时,才能从中央仓库获得它。
<servers>
<server>
<id>central-mirror</id>
<username>myusername</username>
<password>mypassword</password>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
<configuration></configuration>
</server>
</servers>
<mirrors>
<mirror>
<id>central-mirror</id>
<url>https://url.to.my/mirror</url>
<mirrorOf>*,!central</mirrorOf>
</mirror>
</mirrors>
<proxies>
<proxy>
<id>proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>my.corporate.proxy</host>
<port>8080</port>
<nonProxyHosts>localhost|*.my.corporate.proxy</nonProxyHosts>
</proxy>
<profiles>
<profile>
<activeByDefault>true</activeByDefault>
<repositories>
<repository>
<id>central-mirror</id>
<url>https://url.to.my/mirror</url>
</repository>
</repositories>
</profile>
</profiles
答案 1 :(得分:0)
我有类似的情况,如果企业仓库中没有工件,那么它应该default to global repo
。
我在原始settings.xml中进行了两处更改 -
<proxy>
标记*
,则将其更改为repo ID