After getting frustrated with SBT, and being unable to figure out seemingly simple problems like KAFKA-843, I decided to try something completely different.
I spent some time yesterday adapting some Ant/Ivy boilerplate I use for projects to Kafka. It was actually pretty easy to get working (Kafka is a very simple build), and I think it's _much_ cleaner than the existing SBT stuff.
Attached is a patchset of the work I did. N.B., this is totally experimental and only considers the "core" part of the project.
At this point I can:
* Resolve all deps through Ivy (except yammer.metrics which is checked in) * Resolve different versions of Scala through Ivy (i.e., cross compile-ability) * Compile the source * Run all the unit tests (all passing) * Compile a jar * Package a tarball of the libs, conf, and bin scripts
Since all the libraries are localized to the project (and not in ~/.ivy2), the packaging is trivial. Also, the bin scripts could be cleaned up significantly (which they need to be IMO).
I would love to hear what everyone thinks of this. Am I crazy? Is SBT really better? Convince me!
Ant and Ivy also bring in lots of free stuff as well as the flexibility to do non-standard things
It seems that SBT is a moving target (as is Scala itself, being such a new tech), and keeping up with SBT changes and people's plugins hosted on GitHub sounds like a pain. Maven and Ant/Ivy are mature and stable and well understood.
Without digressing too much into a Maven/Ant+Ivy/SBT debate, it is clear that there are issues with the current build. I'm proposing Ant+Ivy, if enough people buy into this - great we'll use Ant. If not, also great - I'm simply forcing the dialog :)
Also, if what I'm proposing is accepted, I would be willing to maintain this piece of the project in the longer term.
Most likely Maven and Gradle are using scalac or SBT under the hood (unless they have written their own compilers - unlikely). However, from what I've read when researching the Ant build, these scalac options (-make:transitive -dependencyfile) are going away.
On 4/8/13 5:15 PM, Scott Carey wrote:
NEW: Monitor These Apps!
Apache Lucene, Apache Solr and all other Apache Software Foundation project and their respective logos are trademarks of the Apache Software Foundation.
Elasticsearch, Kibana, Logstash, and Beats are trademarks of Elasticsearch BV, registered in the U.S. and in other countries. This site and Sematext Group is in no way affiliated with Elasticsearch BV.
Service operated by Sematext