settings.xml 中的条件 Maven 镜像?

问题描述 投票:0回答:1

在我的settings.xml中,我有一个像这样的镜像条目:

<mirror>
    <id>corporate-vpn</id>
    <name>Approved Corporate Java</name>
    <url>https://some-url-available-in-vpn-only/repository/maven-public</url>
    <mirrorOf>*</mirrorOf>
</mirror>

只要我连接到 VPN,这就像一个魅力。有时它不可用,因此我需要直接连接到 Maven Central(和其他)。目前我通过注释掉镜像条目来做到这一点(主要是在 mvn 失败之后)。

我想知道是否有更好的方法,所以如果不可用,mvn 会跳过镜像?

添加了一些变化:https://some-url-available-in-vpn-only 有一个公共登陆页面,上面写着:去使用 vpn。

java maven pom.xml
1个回答
0
投票

目前以简单的原生方式是不可能的。

有一个未解决的问题:https://issues.apache.org/jira/browse/MNG-5698 命题在

mirrors
 中定义 
profiles

现在您必须在不同的文件中维护

settings.xml
供家庭使用和公司使用...或按您所写的那样编辑
settings

一种方法是拥有两个文件,为了轻松切换,我在

.bash_profile
中定义了函数,例如:

function _ms_home {
    echo "Switch default maven settings to home"
    pushd ~/.m2 > /dev/null
    ln -sfv settings-home.xml settings.xml
    popd > /dev/null
}

function _ms_work {
    echo "Switch default maven settings to work"
    pushd ~/.m2 > /dev/null
    ln -sfv settings-work.xml settings.xml
    popd > /dev/null
}

最后我可以简单地在我的 shell 中执行:

_ms_work
_ms_home
根据我当前工作的环境。

© www.soinside.com 2019 - 2024. All rights reserved.