On Jan 4, 2008 1:08 AM, Jean-Sebastien Delfino <[EMAIL PROTECTED]> wrote:
> Jean-Sebastien Delfino wrote: > > Simon Laws wrote: > >> I'm putting Sebastien's ant file generator into the build. The snag is > >> that > >> it builds ant files based on dependencies it finds at the module > >> level. We > >> ship a release excluding all but the latest level of dependencies. > >> Hence the > >> ant file may be looking for dependencies that we don't ship. My first > >> port > >> of call here is to look across the project and see if we can > >> rationalize our > >> dependencies so that the modules are looking for the latest version. > >> Failing > >> that we will have to have some kind of lookup that maps to the latest > >> version for each jar. I'm raising it here in the off chance that > >> someone has > >> already thought about this and knows a neat solution. > >> > >> Regards > >> > >> Simon > >> > > > > Happy new year. > > > > I can try to help fix the problem, once I understand it. Can you point > > me to a module and steps to reproduce it? > > > > Thanks. > > Have looked into it today, and still do not understand what you meant, > sorry :). > > The Ant files are generated from the Maven POM model, which must be > referring to the correct dependencies otherwise our samples won't build > correctly with Maven. So I must be missing something... > > -- > Jean-Sebastien > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > OK, an example of the dependency version problem. I've been going through the poms trying to get us on single versions of dependencies to remove this issue. Still some to do when we have the branch ant the dependencies settle down. Abstract example... ModuleA DependencyA-v1.1 ModuleB DependencyX-v3.5 - transitive dependency to - DependencyA-v1.0 When we build the distribution the maven build chooses one version of DependencyA (I don't what the algorithm is but it doesn't always choose the latest). When we build ant files for ModuleA and ModuleB they are likely to refer to their specific dependencies. Maven doesn't know that we are only going to ship with one version in the binary build. When we use the ant files from the binary build one will fail as a dependency will be missing. A specific example... Look at the calculator-webapp sample. We have a JIRA outstanding ( https://issues.apache.org/jira/browse/TUSCANY-1794) that reports that the war generated for this sample is a different size depending on whether it's generated by ant or maven. The ant build.xml file was generated from the pom.xml in the first place and has all of the correct dependencies however we don't ship all of those dependencies because other modules rely on other versions. In this case it is primarily Xerces. It just so happens that this sample works either way. Probably because the app container already has the missing dependencies so we get lucky in this case. If you look at the dependency list ( http://people.apache.org/~slaws/trunk-dependencies.html) everywhere you see multiple versions on the left hand side this is a potential problem. This list is out of date as I've been working on it. It's also based on the trunk. I'll make a new one when I cut the branch today. My preferred solution here is to fix the dependency versions in the poms. Feel free to help or suggest an alternative approach. Also be useful to know how the distribution build chooses which dependency to ship if anyone knows. Regards Simon
