问题
I want install some grape depencies to my project:
grape install org.codehaus.groovy.modules.http-builder http-builder 0.6
How I can exclude downloading from my maven local repository ? Becase by default it looks like it download from my local repo
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
...
回答1:
You probably have your local maven repo in the resolvers section of grapeConfig.xml
(~/.groovy/grapeConfig.xml
):
<?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>
With the line bellow inside the resolvers
section, grape
gets artifacts from the local maven repo:
<ibiblio name="local" root="file:${user.home}/.m2/repository/" m2compatible="true"/>
Comment it out to download artifacts from the configured repos.
EDIT: just tested locally with joda-time
First, with my local maven repo included in grapeConfig.xml
> 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)
After manually deleting joda-time
folder in ~/.groovy/grapes
and commenting out the line above:
> 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: edited following my comment below:
If you can't create the grapeConfig.xml
in ~/.groovy
but you can create it in other path, you can do
grape -Dgrape.config=<pathTo_grapeConfig.xml> install joda-time joda-time 2.1
来源:https://stackoverflow.com/questions/15784791/how-to-exclude-local-maven-repository-when-installing-grape-dependencies