I haven't worked with a lot of multi-module projects, but the way it works if I understand it right is that your core-api will be built and installed into the local repository. Now whenever you will build the client / server from the relevant directory, It will *not* rebuild the core-api. It will pick up the core-api-0.0.1-SNAPSHOT.jar file from your local repository (.m2/repository/ directory). You will have to make sure that you manually build core-api every time it is updated.

Other way to handle this could be using your local repository (nexus / artifactory) along with Continuous Integration. Where CI builds the core-api and installs it into the local repository. The client / server developer just refers to the local maven repository. I think there is a way to tell Maven to update the dependencies every time from a repository. This will make sure that developers would always get the latest SNAPSHOT dependencies when they build and they do not have to build the whole project after every SCM update.

I wonder if there is a simpler way?

Thanks,

Kalpak

Hello,

I'd need some more clarification in case I use module structure proposed:

does it mean I'd have in server/pom.xml as well as in client/pom.xml?
   <dependencies>
     <dependency>
       <groupId>core-api</groupId>
       <artifactId>core-api</artifactId>
       <version>0.0.1-SNAPSHOT</version>
     </dependency>

or something similar that would match name+version of core-api

I'd like to have automatically built core-api in case I do some
updates in it and then I build server or client module using:
mvn site (but in client or server module, not in the root one)

As for example, server developer doesn't need client to be built (as
it's quite time consuming), but needs only server and core-api.

Do you have any suggestion? Did I get it correctly or am I missing
some important point?

Thanks

Peter B.




On Wed, May 5, 2010 at 12:20 PM, Peter Butkovic<[email protected]>  wrote:
Hello,

thanks for fast reply! I'll follow your proposal.

Peter B.


On Wed, May 5, 2010 at 10:42 AM, Karl Heinz Marbaise<[email protected]>  wrote:
Hi,

i would suggest to create the following structure. Mor


   pom.xml (root) (modules: client, server, core-api)
     +---- client
                 +-- pom.xml  (parent: root: dependency: core-api)
     +---- server
                 +-- pom.xml   (parent: root: dependeny: core-api)
     +---- core-api
                 +-- pom.xml   (parent: root)


The question about core-api is that you don't positioned core-api under
client nor under server, cause it's used by both so you have to put it on
the same level.

Kind regards
Karl Heinz Marbaise
--
View this message in context: 
http://old.nabble.com/maven-multi-module-project-structure-tp28457606p28458206.html
Sent from the Maven - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
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]




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to