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 Tobias Hilka <th...@vps.de> on 2010/09/01 09:09:12 UTC

AW: AW: AW: Retrieve ignores exclude property of dependency

Hello Maarten,

thank you for pointing me tot he right direction. The simplified example worked. But when I add all my other dependencies, the juel jar comes back again. Actually there was another dependency that brought in the same third party dependency. So, the problem was on our side (of course ;-)).

But then there is another question: Is it possible to exclude some dependency in general within one ivy file?

In our example we have the main project that bundles everything together, and there are two dependencies that bring in some unwanted library. Do we have to exclude the unwanted dependency from both our direct dependencies or is there a way to exclude some jar in general?

Thanks for your help,

Tobias

-----Ursprüngliche Nachricht-----
Von: Maarten Coene [mailto:maarten_coene@yahoo.com] 
Gesendet: Dienstag, 31. August 2010 21:09
An: ivy-user@ant.apache.org
Betreff: Re: AW: AW: Retrieve ignores exclude property of dependency

Very strange, when I try your example (with name attribute or module attribute) 
I don't get the juel.jar retrieved.
Could you also try your simplified example to make sure it fails for you (and 
maybe clean your cache first just to be sure)

Maarten



----- Original Message ----
From: Tobias Hilka <th...@vps.de>
To: ivy-user@ant.apache.org
Sent: Tue, August 31, 2010 5:55:55 PM
Subject: AW: AW: Retrieve ignores exclude property of dependency

Hi Maarten,

changing the name attribute to module attribute does not help. Still the jar is 
retrieved.

-----Ursprüngliche Nachricht-----
Von: Maarten Coene [mailto:maarten_coene@yahoo.com] 
Gesendet: Dienstag, 31. August 2010 17:13
An: ivy-user@ant.apache.org
Betreff: Re: AW: Retrieve ignores exclude property of dependency

I think I've found the problem.
Your exclude rule says that the "juel.jar" should be excluded, not the juel 
module itself.

To exclude the whole juel module, you should define your exclude as:

    <dependency org="myorg" name="B" rev="0.1" conf="default->default" 
changing="true">
        <exclude org="juel" module="juel"></exclude>
    </dependency>

Maarten




----- Original Message ----
From: Tobias Hilka <th...@vps.de>
To: ivy-user@ant.apache.org
Sent: Tue, August 31, 2010 4:10:17 PM
Subject: AW: Retrieve ignores exclude property of dependency

Here are the (simplified) versions of my two ivy.xml files:

For module A:

<?xml version="1.0" encoding="ISO-8859-1"?>
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
  
  <info organisation="myorg" module="A" status="integration" revision="0.1" />

  <configurations>
    <conf name="default" description="provide the jar only" />
    <conf name="test" extends="default" visibility="public" description="for 
testing" />
    <conf name="provided" extends="default" visibility="public" description="for 

compiling with provided jars" />
  </configurations>

  <publications>
    <artifact conf="default"/>
    <artifact type="source" ext="zip" />
  </publications>

  <dependencies>
    <dependency org="myorg" name="B" rev="0.1" conf="default->default" 
changing="true">
        <exclude org="juel" name="juel"></exclude>
    </dependency>
  </dependencies>

</ivy-module>


And for module B:

<?xml version="1.0" encoding="ISO-8859-1"?>
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
  
  <info organisation="myorg" module="B" status="integration" revision="0.1" />

  <configurations>
    <conf name="default" description="provide the jar only" />
    <conf name="test" extends="default" visibility="public" description="for 
testing" />
    <conf name="provided" extends="default" visibility="public" description="for 

compiling with provided jars" />
  </configurations>

  <publications>
    <artifact conf="default"/>
    <artifact type="source" ext="zip" />
    <artifact type="javadoc" ext="zip" />
  </publications>

  <dependencies>
      <dependency org="org.activiti" name="activiti-engine" rev="5.0.alpha4" 
conf="default->default"/>
  </dependencies>

</ivy-module>

The third party dependency is the real dependency. The repository we are using 
to retrieve it:

<ibiblio name="activitirepo" m2compatible="true" checksums=""
            
root="http://maven.alfresco.com/nexus/content/repositories/activiti/" 

            
pattern="[organization]/[module]/[revision]/[artifact]-[revision].[ext]" />


Hope this information helps.

Tobias

-----Ursprüngliche Nachricht-----
Von: Maarten Coene [mailto:maarten_coene@yahoo.com] 
Gesendet: Dienstag, 31. August 2010 12:02
An: ivy-user@ant.apache.org
Betreff: Re: Retrieve ignores exclude property of dependency

Could you also post the relevant parts of the ivy.xml of project A and B?

Maarten




________________________________
From: Tobias Hilka <th...@vps.de>
To: ivy-user@ant.apache.org
Sent: Tue, August 31, 2010 11:57:05 AM
Subject: Retrieve ignores exclude property of dependency

  
Hello,

We have a project with some third party dependency, which in turn has some 
transitive dependencies. We want to exclude one special dependency of these 
transitive dependencies. But the retrieve ant task seems to ignore the exclude 
task.

More detailed:

Project A packs the war file.
Project B has dependency to third party library (with transitive dependencies X 
and Y)

In project A we include the artifact published by Project B (transitive=“true“) 
and exclude Y.

When we call retrieve, we still end up with a lib directory containing B.jar, 
X.jar and Y.jar. What we expect would be to only have B.jar and X.jar.

We are using version 2.2.0.cr1_20100629224905 from within eclipse.

Is this a known issue?

Thanks,

Tobias


      

Re: AW: AW: AW: Retrieve ignores exclude property of dependency

Posted by Maarten Coene <ma...@yahoo.com>.
Yes, a global exclude is possible.
Just put the <exclude> element directly under the <dependencies> element in the 
ivy.xml of your module A.
Cfr. http://ant.apache.org/ivy/history/latest-milestone/ivyfile/exclude.html

Maarten




----- Original Message ----
From: Tobias Hilka <th...@vps.de>
To: ivy-user@ant.apache.org
Sent: Wed, September 1, 2010 9:09:12 AM
Subject: AW: AW: AW: Retrieve ignores exclude property of dependency

Hello Maarten,

thank you for pointing me tot he right direction. The simplified example worked. 
But when I add all my other dependencies, the juel jar comes back again. 
Actually there was another dependency that brought in the same third party 
dependency. So, the problem was on our side (of course ;-)).

But then there is another question: Is it possible to exclude some dependency in 
general within one ivy file?

In our example we have the main project that bundles everything together, and 
there are two dependencies that bring in some unwanted library. Do we have to 
exclude the unwanted dependency from both our direct dependencies or is there a 
way to exclude some jar in general?

Thanks for your help,

Tobias

-----Ursprüngliche Nachricht-----
Von: Maarten Coene [mailto:maarten_coene@yahoo.com] 
Gesendet: Dienstag, 31. August 2010 21:09
An: ivy-user@ant.apache.org
Betreff: Re: AW: AW: Retrieve ignores exclude property of dependency

Very strange, when I try your example (with name attribute or module attribute) 
I don't get the juel.jar retrieved.
Could you also try your simplified example to make sure it fails for you (and 
maybe clean your cache first just to be sure)

Maarten



----- Original Message ----
From: Tobias Hilka <th...@vps.de>
To: ivy-user@ant.apache.org
Sent: Tue, August 31, 2010 5:55:55 PM
Subject: AW: AW: Retrieve ignores exclude property of dependency

Hi Maarten,

changing the name attribute to module attribute does not help. Still the jar is 
retrieved.

-----Ursprüngliche Nachricht-----
Von: Maarten Coene [mailto:maarten_coene@yahoo.com] 
Gesendet: Dienstag, 31. August 2010 17:13
An: ivy-user@ant.apache.org
Betreff: Re: AW: Retrieve ignores exclude property of dependency

I think I've found the problem.
Your exclude rule says that the "juel.jar" should be excluded, not the juel 
module itself.

To exclude the whole juel module, you should define your exclude as:

    <dependency org="myorg" name="B" rev="0.1" conf="default->default" 
changing="true">
        <exclude org="juel" module="juel"></exclude>
    </dependency>

Maarten




----- Original Message ----
From: Tobias Hilka <th...@vps.de>
To: ivy-user@ant.apache.org
Sent: Tue, August 31, 2010 4:10:17 PM
Subject: AW: Retrieve ignores exclude property of dependency

Here are the (simplified) versions of my two ivy.xml files:

For module A:

<?xml version="1.0" encoding="ISO-8859-1"?>
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
  
  <info organisation="myorg" module="A" status="integration" revision="0.1" />

  <configurations>
    <conf name="default" description="provide the jar only" />
    <conf name="test" extends="default" visibility="public" description="for 
testing" />
    <conf name="provided" extends="default" visibility="public" description="for 


compiling with provided jars" />
  </configurations>

  <publications>
    <artifact conf="default"/>
    <artifact type="source" ext="zip" />
  </publications>

  <dependencies>
    <dependency org="myorg" name="B" rev="0.1" conf="default->default" 
changing="true">
        <exclude org="juel" name="juel"></exclude>
    </dependency>
  </dependencies>

</ivy-module>


And for module B:

<?xml version="1.0" encoding="ISO-8859-1"?>
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
  
  <info organisation="myorg" module="B" status="integration" revision="0.1" />

  <configurations>
    <conf name="default" description="provide the jar only" />
    <conf name="test" extends="default" visibility="public" description="for 
testing" />
    <conf name="provided" extends="default" visibility="public" description="for 


compiling with provided jars" />
  </configurations>

  <publications>
    <artifact conf="default"/>
    <artifact type="source" ext="zip" />
    <artifact type="javadoc" ext="zip" />
  </publications>

  <dependencies>
      <dependency org="org.activiti" name="activiti-engine" rev="5.0.alpha4" 
conf="default->default"/>
  </dependencies>

</ivy-module>

The third party dependency is the real dependency. The repository we are using 
to retrieve it:

<ibiblio name="activitirepo" m2compatible="true" checksums=""
            
root="http://maven.alfresco.com/nexus/content/repositories/activiti/" 

            
pattern="[organization]/[module]/[revision]/[artifact]-[revision].[ext]" />


Hope this information helps.

Tobias

-----Ursprüngliche Nachricht-----
Von: Maarten Coene [mailto:maarten_coene@yahoo.com] 
Gesendet: Dienstag, 31. August 2010 12:02
An: ivy-user@ant.apache.org
Betreff: Re: Retrieve ignores exclude property of dependency

Could you also post the relevant parts of the ivy.xml of project A and B?

Maarten




________________________________
From: Tobias Hilka <th...@vps.de>
To: ivy-user@ant.apache.org
Sent: Tue, August 31, 2010 11:57:05 AM
Subject: Retrieve ignores exclude property of dependency

  
Hello,

We have a project with some third party dependency, which in turn has some 
transitive dependencies. We want to exclude one special dependency of these 
transitive dependencies. But the retrieve ant task seems to ignore the exclude 
task.

More detailed:

Project A packs the war file.
Project B has dependency to third party library (with transitive dependencies X 
and Y)

In project A we include the artifact published by Project B (transitive=“true“) 
and exclude Y.

When we call retrieve, we still end up with a lib directory containing B.jar, 
X.jar and Y.jar. What we expect would be to only have B.jar and X.jar.

We are using version 2.2.0.cr1_20100629224905 from within eclipse.

Is this a known issue?

Thanks,

Tobias