FAQ


  1. What does the warning "There are some duplicates entries due to conflicts between the resolved configurations" means ?
  2. Something goes wrong with Apache IvyDE, where could I found more logs ?
  3. The IvyDE classpath container disappear when it becomes empty
  4. How can I make IvyDE contribute to the classpath used by WTP when launching my web application ?
  5. Parsing ivy file fails in Apache IvyDE while it succeeds in Ant
  6. Updating Apache IvyDE fails with "no repository found containing [...]"
  7. Using the common-vfs capability of Apache Ivy inside Eclipse

What does the warning "There are some duplicates entries due to conflicts between the resolved configurations" means ?

The warning you get is about a module which you are trying to get in two different configurations. Apache Ivy does the resolve and evict conflicts for only one configuration at a time. The resolve process is one by one configuration. If you have a use case where you have to build a classpath with a lot of different configuration, then you should consider having a new configuration that extends the other ones. Although in most case I think the configurations themselves should be fixed.
For instance in Eclipse you might want to resolve 3 kinds of configuration: compile, test, and runtime. And then you get the warning, because test and runtime conflicts on one dependency. So this means that the ant target that will run the tests (after doing a resolve only on the test configuration) will actually use a different version of a dependency from the one used at runtime, from the one use by the ant target which build the jar. So tests are not running in the same environment as the runtime one. Then you should fix the dependencies by having a direct dependency on the module that generated the conflict. Actually you might want to introduce a private "core" configuration, which will resolve the problematic dependency, and then make "runtime" and "test" extends that "core" configuration.

The topic has been also discussed on the ant-dev mailing list.

Something goes wrong with Apache IvyDE, where could I found more logs ?

You can first look into the IvyConsole

If you are running with the SDK version of Eclipse, you can find every Eclipse plugins log in the "Error log" view. You can open this view within the Menu Window > Show View > Other... and select the "Error Log" view in the "PDE Runtime" category.

Otherwise, you should look to the log file in your workspace: workspace/.metadata/.log

The IvyDE classpath container disappear when it becomes empty

Since Eclipse 3.3, when a classpath container contains no entry, Eclipse makes it disappear. As the IvyDE context menu can only be triggered on the IvyDE container, if it disappears, the user is not able to easily manage its container. It has been decided (IVYDE-82) to not try to fix it as this behavior is hard coded in the deep code of Eclipse, and that there is a workaround:
  • with Eclipse 3.3, to configure Ivy and trigger a resolve:
    • enter the configuration panel of the build path of your project
    • enter in the "Libraries" tab
    • select the IvyDE container and click the button "edit": you enter in the configuration panel of your container
    Then as soon as you save the configuration of your IvyDE container (by clicking on "finish"), a resolve will be triggered automatically.
  • since Eclipse 3.4 you can configure that filter: enter the configuration panel of the filters of the package explorer and deselect the entry "Empty library containers".

How can I make Apache IvyDE contribute to the classpath used by WTP when launching my web application ?

WTP is the Web Tools Plateform project from the Eclipse fondation which allow to easily develop, launch and debug web applications. Apache IvyDE can be used with this framework, but only from the version 2.0 of WTP, which is supported since Eclipse 3.3.

In the properties of your project configured to use WTP, there is a section "Java EE Module Dependencies". There should be your configured IvyDE classpath container listed, usually with the name "ivy.xml [*]". Just select it and the Ivy dependencies will be deployed as well.

This has been successfully tested with Eclipse 3.3 and WTP 2.0, Eclipse 3.4 and WTP 3.0.

Parsing ivy file fails in Apache IvyDE while it succeeds in Ant

The xml parser used in Apache Ant (Apache Xerces) might be different from the one used by Apache IvyDE, which by default is using the one provided by the JRE. The XML parser provided by the JRE is usually Apache Xerces, but for instance the Sun's JRE 1.4 xml parser is Apache Crimson. And the latter doesn't support BOM markers. So you probably want to force IvyDE to use Apache Xerces in Eclipse.

Apache Xerces is an optional dependency of IvyDE, so as soon as it is installed in Eclipse, IvyDE will use it. To install it, use the Eclipse update manager, search for xerces (you should find it under Ganymede/Uncategorized/Apache Xerces), and ask Eclipse to install it.

Updating Apache IvyDE fails with "no repository found containing [...]"

With Eclipse 3.4, the new update manager introduced a bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=236437

The symptoms: you are willing to update Apache IvyDE or the Apache Ivy plugin. The Update Manager find a new version. But it finally fails complaining that it cannot find the Ivy or IvyDE artifacts.

The bug will be fixed for Eclipse 3.5.

The workaround is to remove the failing updatesite from the list of sites in the Update Manager. Then add it again (no need to restart Eclipse). You can now update Ivy or IvyDE successfully.

Using some extra capability of Apache Ivy (like common-vfs) inside Eclipse

If you are using some common-vfs capability of Apache Ivy, some setup is needed.

When working with ant, basically you just install the common-vfs jar into the lib directory of Ant. It is quite similar under Eclipse, but this jar needs to be OSGi capable. So here is a list of jar of the Ivy dependencies which have been repackaged to be deployed in an OSGi environment: Installing the Ivy optional dependencies:
You just need to put the files into the plugins directory of your Eclipse install. And restart your Eclipse.
If you are using Eclipse 3.4, you can prefer installing them into the dropins directory, so if you want to remove them later, they will be easier to find.
Note also that some other plugins might bring one of the Ivy dependencies. So you probably don't have to install every Ivy dependency listed above, like Apache Commons Logging.

Important Note: the links above are poiting to artifacts mostly not released by the Apache Software Fundation, so for licencing issues please refer to the hosting site.

Note also that other versions exist of the suggested jar pointed by the links above. You may want to browse these sites to find the jars that fit your needs:
Printer Friendly