【问题标题】:How to exclude local maven repository when installing grape dependencies安装葡萄依赖项时如何排除本地maven存储库
【发布时间】:2013-04-03 10:23:38
【问题描述】:

我想在我的项目中安装一些葡萄依赖:

grape install org.codehaus.groovy.modules.http-builder http-builder 0.6

如何排除从我的 Maven 本地存储库下载?因为默认情况下它看起来像是从我的本地仓库下载的

found org.codehaus.groovy.modules.http-builder#http-builder;0.6 in localm2
found org.apache.httpcomponents#httpclient;4.2.1 in localm2
found org.apache.httpcomponents#httpcore;4.2.1 in localm2
found commons-logging#commons-logging;1.1.1 in localm2
found commons-codec#commons-codec;1.6 in localm2

...

【问题讨论】:

    标签: groovy groovy-grape


    【解决方案1】:

    您可能在 grapeConfig.xml (~/.groovy/grapeConfig.xml) 的解析器部分中有本地 maven 存储库:

    <?xml version="1.0"?>
    <ivysettings>
        <settings defaultResolver="downloadGrapes"/>
        <resolvers>
            <chain name="downloadGrapes">
                <!-- todo add 'endorsed groovy extensions' resolver here -->
                <ibiblio name="local" root="file:${user.home}/.m2/repository/" m2compatible="true"/>
                <filesystem name="cachedGrapes">
                    <ivy pattern="${user.home}/.groovy/grapes/[organisation]/[module]/ivy-[revision].xml"/>
                    <artifact pattern="${user.home}/.groovy/grapes/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]"/>
                </filesystem>
                <ibiblio name="codehaus" root="http://repository.codehaus.org/" m2compatible="true"/>
                <ibiblio name="ibiblio" m2compatible="true"/>
                <ibiblio name="java.net2" root="http://download.java.net/maven/2/" m2compatible="true"/>
            </chain>
        </resolvers>
    </ivysettings>
    

    resolvers 部分中的下面一行,grape 从本地 maven 存储库获取工件:

    <ibiblio name="local" root="file:${user.home}/.m2/repository/" m2compatible="true"/>
    

    将其注释掉以从配置的存储库中下载工件。

    编辑:刚刚使用 joda-time 在本地测试

    首先,在grapeConfig.xml 中包含我的本地maven repo

    > grape install joda-time joda-time 2.1
    :: loading settings :: url = jar:file:/C:/Software/groovy-2.1.1/lib/ivy-2.2.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
    :: resolving dependencies :: caller#all-caller;working16
            confs: [default]
            found joda-time#joda-time;2.1 in local
    downloading file:C:/Users/jalopaba/.m2/repository/joda-time/joda-time/2.1/joda-time-2.1.jar ...
            [SUCCESSFUL ] joda-time#joda-time;2.1!joda-time.jar (90ms)
    

    手动删除~/.groovy/grapes中的joda-time文件夹并注释掉上面的行后:

    > grape install joda-time joda-time 2.1
    :: loading settings :: url = jar:file:/C:/Software/groovy-2.1.1/lib/ivy-2.2.0.jar!/org/apache/ivy/core/settings/ivysetti    ngs.xml
    :: resolving dependencies :: caller#all-caller;working09
            confs: [default]
            found joda-time#joda-time;2.1 in ibiblio
    downloading http://repo1.maven.org/maven2/joda-time/joda-time/2.1/joda-time-2.1.jar ...
            [SUCCESSFUL ] joda-time#joda-time;2.1!joda-time.jar (2460ms)
    

    EDIT 2:在我的评论之后编辑:

    如果您无法在~/.groovy 中创建grapeConfig.xml,但您可以在其他路径中创建它,您可以这样做

    grape -Dgrape.config=<pathTo_grapeConfig.xml> install joda-time joda-time 2.1
    

    【讨论】:

    • 我没有任何grapeConfig.xml,默认情况下它是从本地仓库下载的。当我创建一个并且我不添加本地存储库时,它是从互联网下载问题在我的情况下我无法创建此配置
    • 如果你不能在~/.groovy中创建grapeConfig.xml但是你可以在其他路径中创建它,你可以做grape -Dgrape.config= install etc.
    猜你喜欢
    • 2016-01-22
    • 1970-01-01
    • 2014-05-31
    • 2014-06-28
    • 2014-03-01
    • 1970-01-01
    • 2012-02-03
    • 2020-07-13
    • 1970-01-01
    相关资源
    最近更新 更多