KARR, DAVID | 13 Jan 18:18 2014

How to deal with several "provided" artifacts from different frameworks

I'm continuing to look at the large multi-module Ant build I work with, to see if I could clean this up a bit by
integrating Ivy.

I'm not just looking at how to clean up the build, but to make it easier for developers to work with
checked-out projects in Eclipse.

Besides the somewhat haphazard way we reference simple third-party and internal artifacts (all of which I
see how I can Ivy-ize), we also use two large frameworks that encompass several jars each, and both of those
jar sets are "provided" artifacts, like the use of "provided" artifacts in Maven, where we want to make
them available at compile time, but those artifacts are not to be assembled into the deployable
component, as they will be available at runtime, however the framework does it.

Presently, these "provided" frameworks are specified in our Eclipse projects as "variables", but this is messy.

If I end up specifying these numerous jars in ivy dependencies, it would be nice if I could group them, so it's
clear what list of jars is part of framework "foo", and which is part of framework "bar".  You could do this
with Maven by specifying a pom that just lists those artifacts, and having projects reference that pom.

KARR, DAVID | 10 Jan 22:39 2014

How could I make "retrieve" also copy into local Maven repo, just like Maven does

I just started using Ivy, to help an Ant build that needs to get a local component built from Maven.

What I've done with Ivy all works.  It retrieves the artifacts from either my local Maven repo or our intranet repo.

There is one thing that this doesn't do that I'd like to have happen.

If it doesn't find it in the local Maven repo, it gets it from the intranet repo, but in that case it downloads
it directly from the intranet repo into the "lib" directory of the project.  If this were Maven doing this
build, it would have also copied the artifact into the local Maven repo.  I'd prefer for this to happen.  How
do I set up some "retrieve" magic that would also install the artifact into the local Maven repo?

If it matters, here is an elided version of my "ivysettings.xml":
    <settings defaultResolver="default"/>
    <property name="m2-pattern"
override="false" />
        <chain name="default">
            <filesystem name="local-maven2" m2compatible="true" >
                <artifact pattern="${m2-pattern}"/>
                <ivy pattern="${m2-pattern}"/>
            <ibiblio name="...Snapshots" m2compatible="true"
            <ibiblio name="...Thirdparty" m2compatible="true"
            <ibiblio name="central" m2compatible="true"/>
(Continue reading)

Carsten.Pfeiffer | 27 Dec 16:00 2013

AUTO: Carsten Pfeiffer ist außer Haus (Rückkehr am 08.01.2014)

Ich kehre zurück am 08.01.2014.

In dringenden Fällen, kontaktieren Sie bitte
Erwin<punkt>Tratar<at>gebit<punkt>de oder

Hinweis: Dies ist eine automatische Antwort auf Ihre Nachricht  "Can't get
ivy to resolve transitive dependencies of local modules" gesendet am
27.12.2013 11:46:27.

Diese ist die einzige Benachrichtigung, die Sie empfangen werden, während
diese Person abwesend ist.

BAFFOUR-AWUAH FRANK | 27 Dec 11:49 2013

What does the "default" column in the dependency overview table of ivy reports mean?

I want an explanation for this column in the dependency overview table of the report generated by
<ivy:report/>: default.

I have set my Ivy up to use both a local repository and maven2, and I've noticed this column contains "true"
for my local modules and "false" for maven2 modules. May I know what this column means?
BAFFOUR-AWUAH FRANK | 27 Dec 11:52 2013

What does the "default" attribute of the ivy.xml "info" tag mean?

I have seen the ivy.xml info tag containing a default attribute in resolved ivy.xml files of modules in my
local repository.

What does this "default" attribute mean (it's not mentioned in the Ivy docs), and why does it only appear in
the resolved ivy.xml files of modules resolved from my local repository (it does not appear in resolved
ivy.xml files of modules resolved from maven2)?
BAFFOUR-AWUAH FRANK | 27 Dec 11:46 2013

Can't get ivy to resolve transitive dependencies of local modules

For days I have tried and simply failed to get apache ivy to resolve the dependencies of dependencies I
declare in my ivy.xml, when the root dependencies are from my local repository. Root dependencies from my
public repository (maven) work well, and even work when I edited one of the ivy.xml to point to a dependency
on a module from my local repository. But transitive dependency resolution for my local repository will
just not work.
I checked the resolved ivy.xml for one of my local modules in the cache, and the dependency section had been
wiped out!
Is there something I have to do?

This is my ivysettings.xml file:

  <settings defaultResolver="default"/>
  <caches useOrigin="true"/>
  <include url="${ivy.default.settings.dir}/ivysettings-public.xml"/>
  <include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/>
  <include file="${ivy.default.ivy.user.dir}/settings/ivysettings-local.xml"/>
  <include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/>  
  <include url="${ivy.default.settings.dir}/ivysettings-default-chain.xml"/>

And this is my ivysettings-local.xml file:

  <property name="ivy.local.default.root"
        value="${ivy.default.ivy.user.dir}/local" override="false"/>
  <property name="ivy.local.default.ivy.pattern"
        value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" override="false"/>
  <property name="ivy.local.default.artifact.pattern"
        value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" override="false"/>
(Continue reading)

JOSE L MARTINEZ-AVIAL | 10 Dec 01:48 2013

Using same ivy-settings.xml in Eclipse with IvyDE for the ant task

   I'm using Eclipse Kepler with IvyDE. I have setup the Ivy settings path
in Eclipse (Window -> Preferences -> Ivy -> Settings) to my settings file (
http://vulcan/ivy-settings.xml). It works fine. But I also use some Ant
scripts inside Eclipse, and I need those scripts to access also the
repository. In order to do that I have needed to call the following task in
my Ant script

<ivy:settings url="http://vulcan/ivy-settings.xml"/>

Is there anyway I can remove that hardcoded url, and point the settings to
use the same URL used by IvyDE?

By the way, Apache Ivy is a wonderful tool. I'm really happy with it.

Brian Gruber | 5 Dec 00:56 2013

unable to use ivy for a specific dependency

I have found that I am unable to use Ivy to add the dependency
org.apache.flume/flume-ng-sdk, version 1.4.0. It gets tripped up trying to
pull org.apache.thrift/libthrift with a literal version of
"${thrift.version}". I'm writing to this list first because I have tried to
use it with some other systems that do maven-ish dependency management (mvn
itself and leiningen) and they had no problem with it. Ivy is unable to
process the dependency even on the command line outside of any project.

output of "java -jar ivy-2.3.0.jar -debug -dependency org.apache.flume
flume-ng-sdk 1.4.0": https://gist.github.com/anonymous/7797344

Please let me know if there's any other information I can provide.

James Poli | 4 Dec 17:54 2013

Programatically change the default cache manager


I'm using Ivy 2.2.0 and trying to programmatically change the default cache manager and useOrigin value in
a custom Ivy Ant task after the ivy settings file has been processed by Ivy configure task.  It doesn't
appear to be using the new default cache with findrevision and resolve (i.e. in the resolvers)?   Is there
extra processing I need to do with the resolvers already defined and processed by configure?

Thanks in advance,

    Ivy ivy = getIvyInstance();
    IvySettings settings = ivy.getSettings();
    DefaultRepositoryCacheManager cacheManager = new DefaultRepositoryCacheManager();

    [ivy:findrevision] default-cache: cached resolved revision expired...
    [ivy:resolve] default-cache: cached resolved revision expired
Steve Heyns | 29 Nov 17:56 2013

Question about module builds


I am trying to migrate 2 build scripts to use ivy, they are 2 separate
modules. What I want to publish is

module a.jar (conf main)
module a test.jar (conf test)

module b.jar (conf main)
module b test.jar (conf test)

Issue is that module a test depends on module b, and module b test depends
on module a. The current way to build is to compile module a, then module b
then module a test, the module b test. To replicate this using ivy I would
need to be able to publish the source from both modules without the test
artifact, then publish the test artifacts. From what I understand
publishing only one artifact is not possible with ivy. But it seems odd to
define separate  ivy files. Anyone with ideas >

Nicolas Lalevée | 22 Nov 18:55 2013

[ANNOUNCE] Apache IvyDE 2.2.0 released

The Apache IvyDE project is pleased to announce its 2.2.0 release.

The Apache IvyDE Eclipse plugin integrates Apache Ivy's dependency management into Eclipse. It lets you
manage your dependencies declared in an ivy.xml in your Java Eclipse projects, or any other kind of
project which needs dependency management. Apache IvyDE will contribute to the classpath of your Java
project or you can make it retrieve your dependencies directly into your project. Last but not least
Apache IvyDE offer editors of ivy.xml and ivysettings.xml files with completion. Get some preview here: http://ant.apache.org/ivy/ivyde/screenshots.html

Major changes in this release:
* the API of IvyDE has been stabilized so that third party plugins can rely on it,
* while still not complete, and still not advertised as stable in Ivy, support of OSGi has been added,
* javadoc and source attachement can be edited now one by one,
* improved stability of the resolve process,
* improved logging for easier debugging.

* this release is expected to work with every version of Ivy 2.1 or superior. The OSGi features require Ivy
2.3.0 or superior though.

This release is considered as stable. The beta of 2.2.0 has been out for a (too) long time.

A more detailed release notes can be read there:

Download the 2.2.0 release at:

Or use directly the Apache IvyDE's updatesite:

(Continue reading)