Hi, Since there were some IRC posts regarding "realclean" when dependencies change, I thought about replacing ant with something else. It's not just because of that particular realclean but also on dependencies that don't get actually updated or even out-of-date IDE project files (.classpath) causing problems.
This "something better" should have proper dependency management, doesn't require us to have dependency jars in git and be supported my major IDEs (IDEA / Eclipse). (Someone using Eclipse?). But such a change should not result in a folder or code refactoring game... Maven could be an option - but it has some drawbacks regarding the current folder structure. Maven can basically only emit one artifact per pom properly (plus some other files like -javadoc.jar or -sources.jar). So it might be required to change the folder structure (don't want that - merging would become a nightmare, if possible at all...). Grade would be a nice option. It is more a scripting language than a "static" construct like Maven's pom.xml. It is very flexible and seems to have all required features. Gradle has native support for Maven repositories. Gradle does not require the user to install Gradle (you can, but do not need to) - it comes with a small "wrapper" that fetches a Gradle binary. I've identified these "non-standard" blocks in build.xml: gen-cli-grammar: basically just a conditional exec gen-cql3-grammar: basically just a conditional exec generate-cql-html: basically just an exec write-java-license-headers / rat: basically just an exec emitting multiple jars (cassandra.jar, cassandra-thrift.jar, cassandra-clientutil.jar) from the same folder (build/classes/main+thrift): difficult with Maven gen-thrift-py: basically just an exec several test targets: is possible with Maven, but let's the pom.xml "explode" and is not easy to read By using Gradle I hope to get rid of dependency problems "realclean" dependency differences between build.xml and IDE since .project/.classpath not updated .project/.classpath cannot be generated because compilation fails due to dependency changes make the build file smaller remove binaries (dependencies) from git proper IDE support for IDEA + Eclipse? If Gradle works, it could be introduced like that: Keep both build.xml and Gradle build file up to date After a while change build.xml to act basically just as a "wrapper" for Gradle. Just to not "disturb" existing processes (Jenkins/CI) and give users a chance to recognize the change. Remove build.xml after some time Would be great to get some feedback what you think about this. Robert
signature.asc
Description: Message signed with OpenPGP using GPGMail