Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Kafka, mail # dev - Thoughts on using Ant+Ivy for the build?

Copy link to this message
Re: Thoughts on using Ant+Ivy for the build?
David Arthur 2013-04-08, 21:53
Yes Ant supports it too since scalac supports it.

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:
> Let me google that for myself:
> Gradle has incremental scala compilation:
> http://www.gradle.org/docs/current/userguide/scala_plugin.html
> Maven does too:
> http://davidb.github.io/scala-maven-plugin/example_incremental.html
> So I suspect it could be solved with Ant.
> Maven and Gradle both support calling ant tasks from within them, if
> necessary.
> In general, any tool will work if maintained and used properly, and any
> tool can be abused and poorly organized for maintenance.
> On 4/8/13 2:09 PM, "Scott Carey" <[EMAIL PROTECTED]> wrote:
>> Gradle is also gaining a lot of popularity, and has a good deal of Scala
>> support.  I don't know if it has incremental compilation.  The maven scala
>> plugin at one time had incremental compilation, I don't know what state
>> that is in now.
>> I'm giving learning enough SBT a shot right now to clean the current mess
>> up, and will submit a patch as part of Kafka-854.  Having KAFKA-826
>> committed would help.
>> On 4/8/13 1:31 PM, "David Arthur" <[EMAIL PROTECTED]> wrote:
>>> Targeting multiple Scala versions is easy with Ant/Ivy and I believe is
>>> possible in Maven. Incremental compilation is available through some
>>> IDEs:
>>> Eclipse has a plugin from Typesafe that does incremental build:
>>> http://typesafe.com/technology/scala-ide
>>> Intellij supports it by using SBT:
>>> http://blog.jetbrains.com/scala/2012/12/28/a-new-way-to-compile/
>>> Lowly vim users like myself would have to suffer longer compile times
>>> -David
>>> On 4/8/13 4:20 PM, Jay Kreps wrote:
>>>> I think the biggest problem is that there isn't clear ownership of the
>>>> build stuff we have. SBT is probably fine if you know it well. Ant and
>>>> maven are probably the same. The problem is that none of the
>>>> committers seem to know SBT well that that is a big barrier for
>>>> getting basic stuff like a good unit test report, etc.
>>>> My personal preference would be for Maven followed by Ant followed by
>>>> anything else (including SBT), but I think the ownership maintenance
>>>> issue is more important than the framework.
>>>> The two useful things that SBT bought us where compile targets (i.e.
>>>> scala 2.8 vs 2.9) and incremental compilation. I think both are
>>>> available outside sbt now...?
>>>> -Jay
>>>> On Mon, Apr 8, 2013 at 12:52 PM, David Arthur <[EMAIL PROTECTED]> wrote:
>>>>> 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.
>>>>> -David
>>>>> On 4/8/13 3:40 PM, Scott Carey wrote:
>>>>>> My first reaction to looking at the current build was that I could do
>>>>>> a
>>>>>> lot better with Maven and I'd get a lot of free stuff with that
>>>>>> (dependency:tree, versions:display-dependency-updates), except that
>>>>>> cross
>>>>>> scala versions would be uglier.  Modularization is trivial with maven