5

我有一个 Maven 镜像存储库(Archiva),例如

<settings>
   <mirrors>     
        <mirror>
        <id>archiva</id>
        <mirrorOf>*</mirrorOf>
        <url>http://myMirrorHost:8080/archiva/repository/internal</url>     
    </mirror>
       </mirrors>
       ...

然而,这是在 VPN 后面,有时我宁愿不使用它/无法连接到 VPM

问题是在 VPN 之外构建时,出现此错误

myMirrorHost:未知主机 myMirrorHost -> [帮助 1]

当我希望它超时/如果找不到则不使用镜像

那可能吗?

4

3 回答 3

5

我有类似的情况,我将镜像设置更改为镜像中心,而不是 *:

<mirrors>     
 <mirror>
  <id>archiva</id>
  <mirrorOf>central</mirrorOf>
  <url>http://myMirrorHost:8080/archiva/repository/internal</url>     
 </mirror>
</mirrors>

然后在配置文件中,我定义了另一个存储库,例如 ibiblio:

<profile>
  <id>myprofile</id>

 <activation>
  <activeByDefault>true</activeByDefault>
 </activation>

  <repositories>
    <repository>
      <id>ibiblio.org</id>
       <name>ibiblio Mirror of http://repo1.maven.org/maven2/</name>
       <url>http://mirrors.ibiblio.org/pub/mirrors/maven2</url> 
    </repository>
  </repositories>  
</profile>

现在,当在镜像中找不到某些东西,或者镜像主机无法访问时,maven 会尝试另一个存储库(它是中央的镜像)。

于 2012-09-14T09:04:25.247 回答
4

尝试在未连接到 VPN 时以离线模式运行构建

mvn -o clean package

另一种选择是在连接到不同网络时使用第二个 Maven 设置文件:

mvn -s $HOME/.m2/settings-alternative.xml clean package

在这种情况下,我还建议指定一个替代的本地存储库位置(在设置文件中),以避免构建混乱。

于 2012-05-16T22:39:16.897 回答
1

我一直使用与Mark 的分析器类似的方法,我编写了一个脚本来处理复制不同的配置或删除那里的配置。

基本用法是首先编写一个配置文件,~/.m2/settings.<config>.xml其中<config>是配置的名称,然后通过调用来设置配置setmvn [config],不指定将删除就地配置。这将符号链接到配置文件,因此如果您的工具修改当前配置,它将修改当前到位的配置文件。

#!/bin/bash

[ "$#" -lt 2 ] || {
    echo "Usage: $(basename $0) [profile-name]" >&2
    exit 1
}

if [ -z "$1" ] ; then
    if [ -f ~/.m2/settings.xml ] ; then
        echo "Configuration removed."
        rm -f ~/.m2/settings.xml
    else
        echo "Configuration not in place, nothing to do." >&2
    fi
else
    if [ -f ~/.m2/"settings.$1.xml" ] ; then
        [ -f ~/.m2/settings.xml ] && rm -f ~/.m2/settings.xml
        ln -s ~/.m2/"settings.$1.xml" ~/.m2/settings.xml
        echo "Configuration set to $1."
    else
        echo "Configuration not found: $1" >&2
        exit 2
    fi
fi
于 2015-02-25T18:58:58.143 回答