CASSANDRA-16391 has been committed to trunk.
Migrate dependency handling from maven-ant-tasks to resolver-ant-tasks.


It addresses a number of issues,
 - dependencies are downloaded, using the resolver-ant-tasks plugin instead
of the deprecated maven-ant-tasks plugin,
 - it will no longer attempt and fail to download dependencies through any
insecure and unavailable http:// central repositories,
 - it makes our generated pom files the source of truth for our dependency
tree, updating dependencies is now only about the edit to build.xml
 - it fixes a number of maven pom inaccuracies, from including
dependencies, to fixing their scope, to excluding conflicts in the
transitive tree.

It also addresses the tribal knowledge of not including compiled binaries
in source artefacts, unless their source are also bundled, or they are only
used as a build tool or for tests, or god-knows-what-other-reason. Related
to these issues is also CASSANDRA-16558, waiting on review.

It has not been committed to the 2.2, 3.0, 3.11 branches. Mostly because of
the urgency of getting this into trunk before another release is cut, but
also to give everyone a post-commit chance to review and test it. This has
all happened much faster than desired.

But *be warned*, because it hasn't yet been committed to these past
branches we have a temporary headache of having to do `ant realclean`
before git switching from trunk to an older branch (otherwise git won't put
back into place the versioned lib/ directory). This didn't come up during
the testing of CASSANDRA-16391, mea culpa, though it will be fixed by
committing CASSANDRA-16557. Another issue that has come up is compiling in
IDE and Eclipse broke, ref CASSANDRA-16560, for the meantime build with
`ant` on the command line.

It would still be possible to keep lib/ in version control, without losing
any of the other advantages gained by CASSANDRA-16391. But we are not clear
where the policy regarding that will land, as it doesn't really provide our
build any advantage. Now _everything_ is downloaded first to
~/.m2/repository/, so rebuilds don't need the internet (at least after
CASSANDRA-16559 lands, which is patch ready). Re-introducing lib/ would
IMHO just mean extra files to remove and commit when changing dependencies.

regards,
Mick

Reply via email to