Thanks Jorg for this feedback it's very useful to us especially now that we
are working on these issues.  I will consult them while trying to clean up
our source/build configuration.

Regards,
Alex

On 5/24/07, Jörg Schaible <[EMAIL PROTECTED]> wrote:


Hi folks,

as a plain lurker to ADS, I'd like to make some minor comments to this
proposal, too. Mainly because we deal with a comparable complexity here in
our office.

Some History Regarding Maven Interactions:
You mension, that the SNAPSHOT handling for parents is broken. This is not
the complete truth, since any SNAPSHOT handling is broken. Maven does not
download a SNAPSHOT again, that is in your local repo. So if you have a dep
on a SNAPSHOT, you can only trust it if you either have wiped out any
SNAPSHOT out of your local repo before or you have build all those yourself
(as I do my 234 reported projects currently).

What we do with our TLP:
- it's an own project. In your case tlp-commons will be released
automatically with every version bump. Might be OK though for tlp-commons
- we locked down the version *all* used plugins in a pluginManagement
section otherwise the build is not really repeatable (it's still not, if you
don't use the same Maven version - at least currently)
- we do not define plugins directly in the TLP. In your case you do so for
the jar and surefire plugin, but keep in mind, not every produced artifact
might use them
- we use a dependencyManagement section declaring all externals and
released deps with versions, no version is used in the dep declaration
anywhere else (this is a policy you have to decide on your own, but it helps
to use the same version everywhere)
- we use also TLP version "SNAPSHOT" i.e. the latest, it helps to
introduce changes that effects a lot of other modules. If you have to
release the TLP always for this, you'll have to update a lot of POMs to the
new version. If the TLP is released, we set the next version always back to
SNAPSHOT. This also helps with artifacts that are not released but reference
the "latest" TLP version.

Drawbacks:
- when releasing an artifact, you should always remember to set the
version to the parent (normally TLP) to the latest one (otherwise you may
use older plugin versions or global settings)
- you do normally a frequent manually update of the TLP from svn and
install it in the local repo (to get latest changes)


Maybe you can pick some useful parts for your policy.

BTW: We use also a lot of POMs that get never released. They usually
reside in the top lovel directories and have basically just a module section
(and often those modules are "injected" by svn:externals). We call them
"builder POMs" and they are never used as parent POM anywhere. Quite handy.

Cheers,
Jörg

Reply via email to