[ 
https://issues.apache.org/jira/browse/KAFKA-855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

David Arthur updated KAFKA-855:
-------------------------------

    Attachment: 0003-Parameterize-scala-version-add-offline-mode.patch
                0002-Tests-all-passing.patch
                0001-Compile-and-package-Kafka-with-Ant-Ivy.patch

Attaching initial patch set
                
> Ant+Ivy build for Kafka
> -----------------------
>
>                 Key: KAFKA-855
>                 URL: https://issues.apache.org/jira/browse/KAFKA-855
>             Project: Kafka
>          Issue Type: Improvement
>    Affects Versions: 0.9
>            Reporter: David Arthur
>              Labels: build, experimental
>             Fix For: 0.9
>
>         Attachments: 0001-Compile-and-package-Kafka-with-Ant-Ivy.patch, 
> 0002-Tests-all-passing.patch, 
> 0003-Parameterize-scala-version-add-offline-mode.patch
>
>   Original Estimate: 168h
>  Remaining Estimate: 168h
>
> Kafka has very simple build requirements and a system like Ant is well suited 
> for a clean and concise build. I have an experimental patch that does just 
> this - replaces SBT with Ant+Ivy. IMO, this approach is cleaner, clearer, and 
> more developer friendly.
> Dependencies are localized to one directory in the project rather than living 
> in ~/.ivy2 and elsewhere. This makes manual classpath building very simple 
> (just one glob) and also makes packaging the libs very easy.
> Testing is done through junit rather than scalatest. The Kafka tests use 
> `org.scalatest.junit.JUnitSuite` which allow the tests to be executed through 
> the junit test runner.
> Management of the Scala version is handled through Ivy. The way I have laid 
> out the Ant script, the Scala version can be changed by setting a different 
> runtime property (-Dscala.version=2.8.2). Cross-compilation of the Kafka 
> artifact would be simple to add.
> The one downside to this approach is lack of an incremental build. `scalac` 
> is deprecating its incremental build capabilities in coming versions. The 
> suggested solution to this is to use an IDE that supports incremental builds.
> The main motivation for this approach, to me at least, is that a developer 
> can look at build.xml and immediately understand what is going on (with the 
> exception maybe of the <ivy: .../> actions which would not be changing). This 
> is largely not true for SBT unless someone is already familiar with SBT. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to