xml中的条件Maven镜像?

5tmbdcev  于 2024-01-06  发布在  Maven
关注(0)|答案(2)|浏览(146)

在我的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。

wqsoz72f

wqsoz72f1#

目前,这是不可能在简单的本地方式。
有一个未决问题:https://issues.apache.org/jira/browse/MNG-5698,建议在profiles中定义mirrors
现在,您必须在不同的文件中维护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,根据我当前工作的环境。

z9smfwbn

z9smfwbn2#

每次你(或你的IDE)运行mvn时,你都可以传递一个带有正确镜像配置的自定义settings.xml文件。
类似于his

相关问题