You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-user@ant.apache.org by "Jimenez Coelho, Juan " <ju...@citi.com> on 2010/02/18 14:40:27 UTC

Configuring repositories - trouble with CLASSPATH ?

I am taking my first steps with Ivy and I need to point my shared repository to an existing Maven 2 repository in the filesystem.

This is what I have done so far:

1.- Copied ivy2.jar to lib directory of my Ant v1.8 installation
2.- Created the following directory %ANT_HOME%\lib\org\apache\ivy\core\settings
3.- Under that directory I copied ivysettings.xml that I found in ivy2.jar and changed its contents to be:

<ivysettings>
    <settings defaultResolver="default"/>
    <include url="${ivy.default.settings.dir}/ivysettings-public.xml"/>
    <include file="C:/Java/apache-ant-1.8.0RC1/lib/org/apache/ivy/core/settings/ivysettings-shared.xml"/>
    <include url="${ivy.default.settings.dir}/ivysettings-local.xml"/>
    <include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/>
    <include url="${ivy.default.settings.dir}/ivysettings-default-chain.xml"/>
</ivysettings>

Where ANT_HOME=C:/Java/apache-ant-1.8.0RC1

4.- I created file C:/Java/apache-ant-1.8.0RC1/lib/org/apache/ivy/core/settings/ivysettings-shared.xml

5.- Before running ANT, I set CLASSPATH to be C:\Java\apache-ant-1.8.0RC1\lib

The result is almost right in the sense that ivy finds my 'overridden' ivysettings.xml but it then fails to find ivysettings-public.xml.  I expected it to search the complete CLASSPATH trying to find that file (just as ANT itself is correctly finding all the classes it needs)

This is the output I am getting on the sample app:


Buildfile: C:\temp\ivy\example\hello-ivy\build.xml

resolve:
[ivy:retrieve] :: Ivy 2.1.0 - 20090925235825 :: http://ant.apache.org/ivy/ ::
[ivy:retrieve] :: loading settings :: url = file:/C:/Java/apache-ant-1.8.0RC1/lib/org/apache/ivy/core/settings/ivysettings.xml

BUILD FAILED
C:\temp\ivy\example\hello-ivy\build.xml:41: impossible to configure ivy:settings with given url: file:/C:/Java/apache-ant-1.8.0RC1/lib/org/apache/ivy/core/settings/ivysettings.xml : java.text.ParseException: failed to load settings from file:/C:/Java/apache-ant-1.8.0RC1/lib/org/apache/ivy/core/settings/ivysettings.xml: io problem while parsing config file: C:\Java\apache-ant-1.8.0RC1\lib\org\apache\ivy\core\settings\ivysettings-public.xml (The system cannot find the file specified)
        at org.apache.ivy.core.settings.XmlSettingsParser.doParse(XmlSettingsParser.java:165)
        at org.apache.ivy.core.settings.XmlSettingsParser.parse(XmlSettingsParser.java:150)
        at org.apache.ivy.core.settings.IvySettings.load(IvySettings.java:408)
        at org.apache.ivy.Ivy.configure(Ivy.java:422)


Given the above, how to I tell Ivy to keep looking in the classpath?  After all, ivysettings-public.xml can be found in ivy2.jar

Thanks

Juan

Re: Configuring repositories - trouble with CLASSPATH ?

Posted by Antoine Levy-Lambert <an...@gmx.de>.
Hi,

I did not read everything but it is bad practice to set the CLASSPATH env var before starting ant.

Antoine
-------- Original-Nachricht --------
> Datum: Thu, 18 Feb 2010 13:40:27 +0000
> Von: "Jimenez Coelho, Juan " <ju...@citi.com>
> An: "ivy-user@ant.apache.org" <iv...@ant.apache.org>
> Betreff: Configuring repositories - trouble with CLASSPATH ?

> I am taking my first steps with Ivy and I need to point my shared
> repository to an existing Maven 2 repository in the filesystem.
> 
> This is what I have done so far:
> 
> 1.- Copied ivy2.jar to lib directory of my Ant v1.8 installation
> 2.- Created the following directory
> %ANT_HOME%\lib\org\apache\ivy\core\settings
> 3.- Under that directory I copied ivysettings.xml that I found in ivy2.jar
> and changed its contents to be:
> 
> <ivysettings>
>     <settings defaultResolver="default"/>
>     <include url="${ivy.default.settings.dir}/ivysettings-public.xml"/>
>     <include
> file="C:/Java/apache-ant-1.8.0RC1/lib/org/apache/ivy/core/settings/ivysettings-shared.xml"/>
>     <include url="${ivy.default.settings.dir}/ivysettings-local.xml"/>
>     <include
> url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/>
>     <include
> url="${ivy.default.settings.dir}/ivysettings-default-chain.xml"/>
> </ivysettings>
> 
> Where ANT_HOME=C:/Java/apache-ant-1.8.0RC1
> 
> 4.- I created file
> C:/Java/apache-ant-1.8.0RC1/lib/org/apache/ivy/core/settings/ivysettings-shared.xml
> 
> 5.- Before running ANT, I set CLASSPATH to be
> C:\Java\apache-ant-1.8.0RC1\lib
> 
> The result is almost right in the sense that ivy finds my 'overridden'
> ivysettings.xml but it then fails to find ivysettings-public.xml.  I expected
> it to search the complete CLASSPATH trying to find that file (just as ANT
> itself is correctly finding all the classes it needs)
> 
> This is the output I am getting on the sample app:
> 
> 
> Buildfile: C:\temp\ivy\example\hello-ivy\build.xml
> 
> resolve:
> [ivy:retrieve] :: Ivy 2.1.0 - 20090925235825 :: http://ant.apache.org/ivy/
> ::
> [ivy:retrieve] :: loading settings :: url =
> file:/C:/Java/apache-ant-1.8.0RC1/lib/org/apache/ivy/core/settings/ivysettings.xml
> 
> BUILD FAILED
> C:\temp\ivy\example\hello-ivy\build.xml:41: impossible to configure
> ivy:settings with given url:
> file:/C:/Java/apache-ant-1.8.0RC1/lib/org/apache/ivy/core/settings/ivysettings.xml : java.text.ParseException: failed to load
> settings from
> file:/C:/Java/apache-ant-1.8.0RC1/lib/org/apache/ivy/core/settings/ivysettings.xml: io problem while parsing config file:
> C:\Java\apache-ant-1.8.0RC1\lib\org\apache\ivy\core\settings\ivysettings-public.xml (The
> system cannot find the file specified)
>         at
> org.apache.ivy.core.settings.XmlSettingsParser.doParse(XmlSettingsParser.java:165)
>         at
> org.apache.ivy.core.settings.XmlSettingsParser.parse(XmlSettingsParser.java:150)
>         at
> org.apache.ivy.core.settings.IvySettings.load(IvySettings.java:408)
>         at org.apache.ivy.Ivy.configure(Ivy.java:422)
> 
> 
> Given the above, how to I tell Ivy to keep looking in the classpath? 
> After all, ivysettings-public.xml can be found in ivy2.jar
> 
> Thanks
> 
> Juan