geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <>
Subject Re: transitive dependencies
Date Thu, 20 Oct 2005 06:17:00 GMT

On Oct 19, 2005, at 11:20 PM, Gianny Damour wrote:

> On 20/10/2005 3:08 PM, David Blevins wrote:
>> On Oct 19, 2005, at 9:23 PM, Gianny Damour wrote:
>>> On 20/10/2005 1:56 PM, David Jencks wrote:
>>>> I've been working on building geronimo using the packaging and  
>>>> assembly plugins.  This works fine except for the unmanageable  
>>>> dependencies.   The project for the assemby plugin to work on  
>>>> currently needs to include in the project.xml every jar to go into  
>>>> the assembly's repository.  Tracking these is impossible.
>>>> We need some way for a configuration or even a plain dependency to  
>>>> instruct the assembly plugin to copy the artifacts dependencies  
>>>> into the repository.
>>>> One possibility is to use maven poms.  IIUC Dain is working on  
>>>> integrating or imitating the latest maven repository management  
>>>> code.  Will this give us transitive dependencies?  Will the maven  
>>>> model work for us?  How close is this?  If we had it, it would be  
>>>> pretty easy to construct separate jetty and tomcat assemblies, a  
>>>> both assembly, an assembly w/o ejbs, etc etc.  Without transitive  
>>>> dependencies, it will be a nightmare to try to keep the repository  
>>>> contents adequate and restricted to what is actually needed to run  
>>>> the server.
>>> Another approach would be: for each plain dependency, we could  
>>> generate a META-INF/geronimo-service.xml file based on the POM  
>>> dependencies as part of a standard build. Transitive dependencies  
>>> would be achieved by walking down the dependencies defined by the  
>>> geronimo-service.xml file.
>> That really wouldn't solve the transitive side of the problem.  I  
>> mean it would work as we maintain our poms to include our  
>> dependency's dependencies (and dependencies of those dependencies  
>> (and ...(N))), but expecting a completely flattened list of  
>> dependencies in a single file per configuration isn't really the  
>> definition of transitive.
> LOL. Hopefully, this is not the approach that I was trying to 
> explained. Our POMs stay "as is" (w/o the dependencies of dependencies 
> and this transitively). Upon build, we generate a geronimo-service 
> plan defining all the "direct" runtime dependencies identified by the 
> POM.
> Based on the resulting geronimo-service file, there would be two 
> approaches:
> 1. upon car packaging, runtime dependencies defined by the POM 
> dependencies are copied from the local maven repo to the car. Upon 
> assembly, the runtime dependencies defined by the car module are 
> copied to the repository; or

That's what "include" does, except the dependencies stay in the car.  I 
don't think this is a good idea generally, it sort of defeats the 
purpose of the maven repo.
> 2. upon assembly, the runtime dependencies are read from the car and 
> copied from the local maven repo to the repository.
This is what I would like.

> Thanks,
> Gianny
>> Just being a stickler :)
>> We already generate part of the geronimo-service.xml files at build- 
>> time, we might as well go all the way.

??? where is a geronimo-service.xml file generated today? do you mean 
the version substitution?

david jencks

>> -David

View raw message