Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse 多个镜像的maven设置_Eclipse_M2eclipse - Fatal编程技术网

Eclipse 多个镜像的maven设置

Eclipse 多个镜像的maven设置,eclipse,m2eclipse,Eclipse,M2eclipse,我有一些个人项目和一些公司项目。公司项目对maven依赖项使用镜像公司SVN repo。我希望以这样的方式配置我的settings.xml,即首先根据我的公司镜像检查依赖项。只有在此处(对于我的个人项目)未找到依赖项时,才应对照我的公司回购所反映的原始“中央”回购进行检查。这可能吗。下面是我现在拥有的一个片段,但它没有在需要时触及“中央”回购协议。谢谢 <servers> <server> <id>central-mirror</

我有一些个人项目和一些公司项目。公司项目对maven依赖项使用镜像公司SVN repo。我希望以这样的方式配置我的settings.xml,即首先根据我的公司镜像检查依赖项。只有在此处(对于我的个人项目)未找到依赖项时,才应对照我的公司回购所反映的原始“中央”回购进行检查。这可能吗。下面是我现在拥有的一个片段,但它没有在需要时触及“中央”回购协议。谢谢

<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>

中央镜
我的用户名
我的密码
664
775
中央镜
https://url.to.my/mirror
中心的
代理
真的
http
我的公司代理
8080
localhost |*.my.corporate.proxy

好的,经过反复试验,我终于想出了办法。我希望这将帮助很多其他人。下面是我更新的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

中央镜
我的用户名
我的密码
664
775
中央镜
https://url.to.my/mirror
*,!中心的
代理
真的
http
我的公司代理
8080
localhost |*.my.corporate.proxy
真的
中央镜
https://url.to.my/mirror

我有一个类似的场景,如果一个工件在公司回购中不可用,那么它应该默认为全局回购

我在我的原始settings.xml中做了两个更改-

  • 为您的网络定义一个
    标记
  • 如果mirrorOf属性为
    *
    ,则将其更改为repo ID

  • 你能解释一下吗?当你需要两个镜像时,为什么只有一个镜像和回购?为什么这里定义了服务器?默认情况下,maven使用官方镜像,
    *,!中央
    设置为默认值将匹配
    无官方
    repo,服务器是为用户帐户定义的,例如当您需要上载以启用第三方镜像时,更改
    *,!中区
    至中区