incubator-cassandra-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eric Evans <eev...@rackspace.com>
Subject Re: Thoughts on issue 697 (Mitigate unpublished dependencies when using Cassandra with Maven)
Date Fri, 09 Apr 2010 18:25:20 GMT
On Fri, 2010-04-09 at 10:11 -0700, Hannes Schmidt wrote:
> > 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.

As CASSANDRA-850 covers (and I summarized separately), we are required
to conform to the individual license requirements of these third-party
dependencies if we are to legally redistribute them. These requirements
vary from license to license, and TTBOMK, there is no deterministic way
to identify a license (including any additional provisions) and generate
compliant artifacts.

> 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? 

I don't like Maven either, but you aren't the first person to tell me I
have it all Wrong. If someone were to do the work and demonstrably prove
that there is a Better Way, as opposed to just telling me what I should
do, I'd be open to a change.

-- 
Eric Evans
eevans@rackspace.com


Mime
View raw message