cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aristedes Maniatis <>
Subject Re: Maven: Aggregation and unpublished modules
Date Mon, 25 Apr 2011 12:53:04 GMT
On 18/04/11 7:32 PM, Andrus Adamchik wrote:
> The original idea of having "private" (aka "unpublished") modules that are aggregated
into bigger public modules was about consistent picture that we wanted to present to the end

I am a little confused by the structure you are presenting. There appear to be several separate

1. minimising the number of pom files visible to users. The current structure tries to achieve
this, at the expense of the POLA (Principle Of Least Astonishment) to users familiar with
the standard maven ways. The benefit of fewer poms is fairly insignificant.

2. the way the source code is structured and arranged (unpublished modules, etc). I see nothing
really wrong with the way it is now.[1] Source code structure should be for Cayenne developers
to understand, not end users to worry about. Yes, this produces poms that are visible to the
end users, but few will ever care.

3. aggregation of the same code in different ways for client/server/jdk9/etc and how aggregation
is achieved. Currently this is by using special aggregation poms. Another approach would be
to use the main parent pom, along with profiles to build different output [2]. I don't have
an opinion either way, and I'm not sure what is wrong with the current approach, but aggregating
using profiles to include different modules seems more 'maven'.

It seems to me that exposing cayenne-common.jar to the world is exposing the internal code
structure to users. Why is this needed?

Am I missing the point of this restructure?


[1] But if it were to change, then the source tree could match the output artifacts more closely:
  - client
  - server
  - modeler
  - lifecycle
  - frameworks
    - di
    - core
etc. This makes building artifacts and aggregating them more obvious.


Aristedes Maniatis
GPG fingerprint CBFB 84B4 738D 4E87 5E5C  5EFA EF6A 7D2E 3E49 102A

View raw message