Jerome, 

Thank you for your answers. However my goal is to use Maven and to
discuss a possible strategy within Maven to support this use case. The
Cactus project already has a build and it works fine. I'm trying to
figure out the best possible strategy with Maven.

So far you're the only one to have provided your view. I was hoping to
get other Maven developer's feedback too.

Thanks
-Vincent

> -----Original Message-----
> From: Jerome Lacoste [mailto:[EMAIL PROTECTED]
> Sent: 25 May 2004 14:05
> To: Maven Developers List
> Subject: RE: [Strategy] How to manage several subprojects as one
project?
> 
> On Mon, 2004-05-24 at 08:09, Vincent Massol wrote:
> > Hi Jerome,
> >
> > > -----Original Message-----
> > > From: Jerome Lacoste [mailto:[EMAIL PROTECTED]
> > > Sent: 24 May 2004 06:48
> > > To: Maven Developers List
> > > Subject: Re: [Strategy] How to manage several subprojects as one
> > project?
> > >
> > > On Sun, 2004-05-23 at 16:13, Vincent Massol wrote:
> > > > Hi guys,
> > > >
> > > > I'm still trying to slowly convert the Cactus build (which uses
Ant)
> > > > into a Maven build. Here's a use case I have. Currently I have
the
> > > > following:
> > > >
> > > > framework/
> > > >   |_ src
> > > >     |_ share-12-13-14
> > > >     |_ share-13-14
> > > >     |_ j2ee-12
> > > >     |_ j2ee-13
> > > >     |_ j2ee-14
> > > >   |_ build.xml
> > > >   |_ [...]
> > > >
> > > > Where 12, 13, 14 represents the J2EE APIs (1.2, 1.3 and 1.4
> > > > respectively). The share directories contain common classes for
the
> > > > different API versions. Of course the build for the different
APIs
> > have
> > > > different dependencies.
> > > >
> > > > To transform this into a Maven 1.x build, it seems that what
makes
> > most
> > > > sense is to have the following:
> > > >
> > > > framework/
> > > >   |_ share-12-13-14
> > > >     |_ src
> > > >   |_ share-13-14
> > > >     |_ src
> > > >   |_ j2ee-12
> > > >     |_ src
> > > >   |_ j2ee-13
> > > >     |_ src
> > > >   |_ j2ee-14
> > > >     |- src
> > > >
> > > > (i.e. a project per src directory).
> > > >
> > > > However, there are several issues:
> > > > 1- I don't want to publicly expose the share-12-13-14 jar
artifact
> > for
> > > > example. Thus it would be best to have some interproject
"channel"
> > that
> > > > do not go into the local Maven repo.
> > > > 2- I still to only deliver 3 jars (one for each API), thus I
need to
> > > > regroup the different jars. For example for J2EE API 1.3, I need
to
> > > > regroup the share-12-13-14 + share-13-14 + j2ee-13 jars. I don't
> > think
> > > > that uberjar does exactly this. Of course it should be possible
to
> > > > develop a plugin for this if there is no other solution. It's a
bit
> > of a
> > > > pain to have to jar the output from subprojects to then have to
> > unjar
> > > > jar to again rejar everything a main framework jar. It would be
nice
> > to
> > > > be able to exchange classes artifact between the different
> > subprojects.
> > > > 3- More generally, I'd like to consider the framework project as
one
> > > > virtual project, i.e. have only a single site, single javadoc,
etc.
> > > >
> > > > In light of this, it seems to me that the only reason to have
> > different
> > > > subprojects is to have the ability to define different
dependencies
> > for
> > > > the different J2EE APIs. Thus maybe there is another solution
using
> > > > dynamic dependencies (not sure how that would work though).
> > > >
> > > > Any take on this use case for Maven 1.x?
> > > >
> > > > Is that a known use case for m2?
> > > >
> > > > Thanks
> > > > -Vincent
> > >
> > > I am not a maven expert at all, but with regards to not exposing
your
> > > shared jars, what about the following:
> > >
> > > - your build is a 2 stage process where you first build the
required
> > > dependencies and place them in a local repository
> > > - the second phase uses your built jar files to finish the work
and
> > > publish
> > >
> > > e.g.
> > >
> > > target/tmp-repos/share-12-13-14/jars
> > > target/tmp-repos/share-13-14/jars
> > > etc...
> > >
> > > project.properties=...
> > > manve.remote.repos=[ibiblio...],./target/tmp-repos/
> >
> > Is that something you've done in practice?
> 
> No....
> 
> >  How do you deploy your jars
> > to the local repository (will jar:install work with several
> > repositories?)
> 
> copying manually ?
> 
> > How do you manage (in term of time-consumption) the fact
> > that Maven will try looking first on ibiblio, display some error
message
> > and then only try the second repos?
> 
> this I can answer because I don't use ibiblio on my personnal
projects.
> I always have ibiblio first and local repos after and it's not slow
(on
> Linux)
> 
> > How do you solve the other issues I have listed above, namely points
2
> > and 3?
> 
> don't know!
> 
> > > You may need to make a split into your dependencies & your
project,
> > using
> > > sub-projects. But I think this should work with the.
> > >
> > > Would that work?
> > > I think it solves 1.
> >
> > In theory yes. In practice I don't think so :-)
> >
> > I still need to get a solution for the other points though.
> 
> Maybe that doesn't cut it...
> 
> Are you sure you want to use your own sub projects?
> What about handling the problem in a simpler way. Keep something
similar
> to the original layout and try to make the compilation, the jars
yourself?
> 
> It's not cute but if it works....
> 
> Jerome
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to