Hi Andrus,

Comments in line...

On Jul 20, 2006, at 9:07 PM, Andrus Adamchik wrote:

Hi Bill,

You nailed it right. See more comments inline.

On Jul 20, 2006, at 10:46 PM, Bill Dudney wrote:
Module                                  Dependencies
cayenne-core                    - external stuff
cayenne-core-java-1.5   cayenne-core
cayenne-remote                  cayenne-core
cayenne-server                  cayenne-core, cayenne-remote
cayenne-server-java-1.5 cayenne-server
cayenne-jpa cayenne-server (shouldn't this be cayenne-core- java-1.5?)

Actually cayenne-core-java-1.5 and cayenne-server-java-1.5 are optional runtime dependencies for modules that use cayenne-core and cayenne-server respectively (i.e. nothing from the cayenne-*-1.5 is imported anywhere else at the moment). In Maven terms this probably means that this is a complimentary *runtime* dependency that always goes together with compile dependency of the corresponding 1.4 piece.


When would cayenne-core-java-1.5 be a required dependency? Just thinking out loud on how this module is used...

So if I'm deploying Cayenne into my web app I'd always want cayenne- core-java-1.5 to go into the war/WEB-INF/lib dir? I think that means as you say a 'runtime' dependency but to keep the user to only have to import one dependency we would have to introduce something that tied the two together. This is not absolutely necessary, its just that without something that ties them together users would have to specify cayenne-core and cayenne-core-java-1.5 both as dependencies instead of just one dependency. Or we would have to document when to include both.

Thoughts?

cayenne-webobjects              cayenne-core
modeler-plugin                  swing-plugin, cayenne-webobjects, cayenne-server
swing-plugin                            plugin-launcher
plugin-launcher                 - external stuff

A question - in my previous message I split "core" modules and the "modeler" modules in separate subdirectories, adding another level of nesting just to keep it logically organized. This is escpecially important when in the future develop more Modeler plugins.

Is this something that will cause grief with Maven?



No it will be fine, I was more trying to get the logical module dependency structure worked out before I tackled the directory layout.

We have 3 Assemblies:

Generic Java Runs Anywhere (modeler without platform specific launcher)
OSX Cayenne Modeler Launcher
Windows Cayenne Modeler Launcher

Agreed.

There is one piece remaining that I just though of - the static docs, release notes and such. Where would that go? Probably a separate module?


So we have the overall static docs that are not really part of any particular subproject or module (tutorials, the front page, the css and other layout goodies etc). These would go into a separate module but each of the subprojects could/would have their own site information as well then we can have maven aggregate everything into one site. At least that is what I'm thinking right now.


You can also get a free copy of 'Better Builds With Maven' from here;

http://www.mergere.com/m2book_download.jsp

Yeah, this one has been rather helpful for me.

Andrus

Reply via email to