Maven vs. Buck

357 views
Skip to first unread message

Alan Deikman

unread,
Nov 3, 2016, 4:44:02 PM11/3/16
to ONOS Developers
I noticed that the Wiki documentation now features BUCK based build instead of maven. I noticed the BUCK rule files were all added back in March/April time frame. Is the plan to deprecate maven use altogether and just use BUCK from some point on?

What was the driving feature that led the project in this direction? I have never been a big fan of Maven except that all the IDEs supported it so well. So I am interested in what the thoughts over this were.

What happens to all the maven-managed artifacts that ONOS depends on?

I am completely new to BUCK so I could use some suggested pages to read.

----------------------------
Alan Deikman
ZNYX Networks, Inc.




Ray Milkey

unread,
Nov 4, 2016, 5:04:44 AM11/4/16
to Alan Deikman, ONOS Developers
Hi Alan,

The decision to migrate to buck was made due to the length of  time we currently spend waiting for maven builds. The maven build takes around 18 minutes currently while the buck build takes only four minutes. Over the life of the project, that is a large savings in time. In addition, the usual code->build->debug->code cycle in buck takes just a few seconds to perform an incremental build.

buck has the ability to dowload maven style dependencies, so we have implemented that in the ONOS buck build to reference the 3rd party artifacts we need. You can find out more about buck here https://buckbuild.com. This site gives some background on the tool and describes how it can improve performance so much over maven.






--
You received this message because you are subscribed to the Google Groups "ONOS Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to onos-dev+unsubscribe@onosproject.org.
To post to this group, send email to onos...@onosproject.org.
Visit this group at https://groups.google.com/a/onosproject.org/group/onos-dev/.
To view this discussion on the web visit https://groups.google.com/a/onosproject.org/d/msgid/onos-dev/5912745F-1756-40EB-B768-F267A261D6B2%40znyx.com.

Alan Deikman

unread,
Nov 5, 2016, 11:33:04 PM11/5/16
to ONOS Developers

On Nov 4, 2016, at 2:04 AM, Ray Milkey <r...@onlab.us> wrote:

The decision to migrate to buck was made due to the length of  time we currently spend waiting for maven builds. The maven build takes around 18 minutes currently while the buck build takes only four minutes. Over the life of the project, that is a large savings in time. In addition, the usual code->build->debug->code cycle in buck takes just a few seconds to perform an incremental build.

buck has the ability to dowload maven style dependencies, so we have implemented that in the ONOS buck build to reference the 3rd party artifacts we need. You can find out more about buck here https://buckbuild.com. This site gives some background on the tool and describes how it can improve performance so much over maven.

Thanks for the tips.  

I know this isn’t quite the right forum for IDE support but I haven’t had much luck with the IntelliJIDEA plug-in for buck.  It works ok for editing and more importantly for navigating but I can’t run a buck build from inside the IDE.   One obvious problem is that ONOS requires a special binary of buck in bin/buck.  The plugin will go for /usr/local/bin/buck which won’t build ONOS.  However changing that in the preferences didn’t seem to work any better. 

Aside from that I discovered that not only could I not build in the IDE, but I couldn’t build at a shell prompt either unless I exit the IDE!   Does anyone know what is going on there?  If you disable or uninstall the buck plugin, then the build works fine.   Are there any configuration installation tips so this doesn’t happen?

Another annoying thing about it is that the buck plug-in spits out continuous error messages unless you load the Android Debugger daemon.  (Which in turn may require an XCode upgrade if you are on Mac OS X)   Anyone know a better way around that?
Reply all
Reply to author
Forward
0 new messages