incubator-cassandra-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hannes Schmidt <han...@eyealike.com>
Subject Re: Thoughts on issue 697 (Mitigate unpublished dependencies when using Cassandra with Maven)
Date Fri, 09 Apr 2010 17:11:24 GMT
On Fri, Apr 9, 2010 at 7:26 AM, Eric Evans <eevans@rackspace.com> wrote:

> On Fri, 2010-04-09 at 08:52 -0500, Jonathan Ellis wrote:
> > On Fri, Apr 9, 2010 at 8:21 AM, Gary Dusbabek <gdusbabek@gmail.com>
> wrote:
> > > Cassandra is a community of volunteers.  If someone is willing to take
> > > that half-hour and make Cassandra a mvn-friendly place and maintain it
> > > whilst moving forward, I say let it happen.  Make it easy for us to
> > > package a release and push it to a repo.
> > >
> > > Nobody has stepped up to do this though.  We had a pom in trunk for
> > > quite a while.  None of the developers used it, and therefore had no
> > > motivation to maintain it.
> >
> > It's still there in contrib/maven, btw.  No doubt somewhat bit-rotted.
>
> Required reading for anyone wishing to contribute maven support:
>
> https://issues.apache.org/jira/browse/CASSANDRA-850
>
> The highlights:
>
> You either (a) have to find a way to create binary artifacts that
> contain all of the necessary libs while satisfying their license
> requirements, or (b) turn the tide of public opinion and build consensus
> that using maven to retrieve the dependencies post-download is OK.
>
>
The Maven build should produce as it's main artifact a slim jar that
contains only the classes and resources that are derived from the sources
inside the project. Like every Maven-produced jar artifact, the slim jar
would contain the pom.xml which would declare the slim jar's dependencies.
The slim jar is for people who want to use Cassandra in a Maven project.
They would simply declare a dependency on the slim jar in their project and
Maven would pull that in along with the transitive dependencies, i.e. the
slim jar's dependencies (for this to work, all of those dependencies would
have to be available through a public repository which is what this issue is
about).

The Maven build would also produce an attached (Maven lingo) fat jar. This
is a JAR that contains all classes and resources of Cassandra and its
dependencies rolled into a single JAR that's executable via "java -jar".
This is also the artifact that the Download section would link to.

Optionally, and as you already suggested, the client- or API-specific stuff
could be factored out into a separate project.


> I wish you the best of luck (seriously).
>
>
Well, Eric, let's start with you: Would you be in support of moving
Cassandra to a Maven build and abandoning Ant/Ivy or at least have the Ant
build deploy the necessary artifacts to the Maven repo?


> --
> Eric Evans
> eevans@rackspace.com
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message