My first suggestion is to completely separate the development and
release cycle of your common modules.

Otherwise:

> \- Shared parent project
>   -- Simple Weather API
> +- Simple Parent Project
>   -- Simple Web Application Project
> +- Simple Parent Project
>   -- Simple Web Application Project 2

And in the pom of your shared parent project create a <modules> tag
with the "Simple Weather API" module and two profiles, each one adding
one of the other modules.

<profiles>
  <profile>
     <id>WAP</id>
     <modules>
        <module>Simple Parent Project</module>
     </modules>
  </profile>
  <profile>
     <id>WAP-2</id>
     <modules>
        <module>Simple Parent Project 2</module>
     </modules>
  </profile>
</profiles>

mvn install will now only compile the common module.

mvn install -PWAP will install the common module and the first web app.
mvn install -PWAP,WAP-2 will install the common module and both of the webapps.

Hth,

Nick Stolwijk
~Java Developer~

Iprofs BV.
Claus Sluterweg 125
2012 WS Haarlem
www.iprofs.nl



On Thu, Nov 13, 2008 at 7:23 PM, Wayne Fay <[EMAIL PROTECTED]> wrote:
>> Is there any way to set up multi-module projects so that they can share a
>> module, and both projects can detect when that module's source code is
>> out-of-date? Thanks,
>
> Well this is the first obvious approach:
>> \- Simple Parent Project
>>   +- Simple Weather API
>>   +- Simple Web Application Project
>>   +- Simple Web Application Project 2
>
> or this:
> \- Shared parent project
>> +- Simple Parent Project
>>   -- Simple Weather API
>>   -- Simple Web Application Project
>> +- Simple Parent Project 2
>>   -- Simple Web Application Project 2
>
> Or you could use a "builder pom" that some people advocate, which
> looks something like:
> \- builder pom (modules "..\parent1" and "..\parent2")
> \- Simple Parent Project
>  +- Simple Weather API
>  +- Simple Web Application Project
> \- Simple Parent Project 2
>  +- Simple Web Application Project 2
>
> One note, I personally do not like/use the third approach myself. I
> would tend towards the first one if you require both projects to
> "detect when a shared module is out-of-date" as you have stated. The
> fact that the projects are "completely independent" is not
> particularly important IMO.
>
> Another option would be to simply break the API out as its own
> project. Then changes would be "detected" by no one, and you would
> have to forcibly update/rebuild the webapps on an as-needed basis.
>
> Wayne
>
> ---------------------------------------------------------------------
> 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