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