OK, I nearly have the Cassandra-Maven-Plugin ready.
It has the following goals: run: launches Cassandra in the foreground and blocks until you press ^C at which point Maven terminates. Use-case: Running integration tests from your IDE. Live development from your IDE. start: launches Cassandra in the background. Cassandra will be torn down when Maven ends or if the stop goal is called. Use-case: Running integration tests from Maven. Live development from your IDE with e.g. jetty clean: Clears out the Cassandra database directory in ${basedir}/target/cassandra. Use-case: Resetting the dataset. load: Runs the cassandra-cli with a file as input. Use-case: Creating Keyspaces & pre-populating the dataset stop: Shuts down the background Cassandra instance started by start. Use-case: Running integration tests from Maven. So for example, if you are developing a web application using Maven you would use a command like: mvn cassandra:clean cassandra:start cassandra:load jetty:run which would start up cassandra with a clean dataset and then start up jetty (which presumably connects via a client library to cassandra). Similarly, you can use cassandra-maven-plugin, jetty-maven-plugin, maven-failsafe-plugin and selenium-maven-plugin to run web integration tests as part of your build. So I have some questions: 1. Is there a standard file extension for the scripts that get passed to cassandra-cli? 2. Is there any other obvious goal I have missed out on? There is a small bit of tidy-up left and then I just have to add some integration tests and the site documentation. Once I have all that in place I will raise a JIRA with the full source code against CASSANDRA and hopefully a friendly committer will pick it up and commit it into the tree. While waiting for a committer testers will be welcome. If it gets accepted I will then see about getting it released and published on central. Expect to see the JIRA sometime Monday or Tuesday. -Stephen