ivy problems: "conflicts" and "Multiple artifacts"

I have completed migratig a project from Vaadin6 to Vaadin7.

Unfortunately as a last step I decided to cleanup my use of libraries because “ivy” seemed like such a majic tools for simply upgrading to new versions of libraries being used.


  1. The first problem
    [/b] I have is:

Some projects fail to be resolved Error while resolving dependencies for ivy.xml[*] in LGuru2 problem during retrieve of com.example#v7proj: java.lang.RuntimeException: Multiple artifacts of the module javax.validation#validation-api;1.0.0.GA are retrieved to the same file! Update the retrieve pattern to fix this error. I found I could get past this by commenting out following dependence.
<dependency org="org.hibernate" name="hibernate-validator" rev="4.3.1.Final" />
2) The second problem

There are some duplicates entries due to conflicts between the resolved configurations [*]

  • commons-io#commons-io
  • commons-codec#commons-codec
    [/code]I really do not know what I am doing so I tried adding the follow line:

<dependency org="commons-io" name="commons-io" rev="2.4" /> As far as the list of jar in the the ivy library all looked good (ie. version 2.2 required by “widgetset-compile” did not show). But eclipse is still complained about my use of “IOUtils.copyLarge(in, out);” (a post 2.2 added function).

Has anyone come across problems like these before?
Is so are there any solutions(/workarounds) and simple man like myself could understand?

Ok my update (for what it is worth) is this:
I fiddled and fiddled and fiddle with Eclipse/Ivy stuff. I could not get anything to work. Eventually I comment out all but the vaadin stuff in the ivy.xml and then added back just what was needed. The problem went away. I asuspet this is because of something I did setting up the workspace, but I am not sure waht it is (for now).

My projects also has a hand coded “build.xml” for building production versions of my application.
When I added ivy targerts to this the problem with the “javax.validation … Multiple artifacts” appeared again.
Fortunately because I had full control of the build process I could work out what the problem was.
I changed my ivy commands in my build.xml from:

<ivy:resolve /> <ivy:retrieve sync="true" type="jar,bundle" pattern="${ivy-base}/[artifact] .[ext] "/> to:

<ivy:resolve /> <ivy:retrieve sync="true" type="jar,bundle" pattern="${ivy-base}/[conf] /[artifact] -[revision] .[ext] " /> The key point being the “/[conf]
/”. This means the arifacts are downloaded in 3 separate directorys, ie, one per configuration.

<conf name="default" /> <conf name="widgetset-compile" /> <conf name="nodeploy" /> After that is a quite easy to adjust the rest of the build.xml targets to use the locations as are appropricate.

Back to the the original problem, ie. Eclipse/IvyDE build process.
What I THINK I did was use the Window->Preferences->Ivy->Classpath Container view. I selected “rerieved artifacts” and set the “Retrived pattern” to lib/[type]
". I then switched back to “Ivy’s cache” selection. There may have been some “Workspace selection”(/Eclipse restarts) also.
Again this is just what “I THINK I DID”. I have noted it here just in case someone else in the future has similar problem and is lost for ideas about where to start looking.