Java Build Tools
Jeanne Boyarsky
Stuy Splash – 12/16/17
slideshare.net/boyarsky
Twitter @jeanneboyarsky
Blog: http://www.selikoff.net
Ant
• What the robot uses
• An older build tool, but still updated
• No internet access required
Hello World
More Targets
Ant Contrib
Your Robot
WPI Lib’s Ant File
In <home>/wpilibj/java/current
build.properties
build.xml
Examples
• Written from scratch
• https://github.com/Team694/java-
education/blob/master/build.xml
• https://github.com/Team694/cv-edu-
2017/blob/master/build.xml
• https://github.com/Team694/stuyvision-
lib/blob/master/build.xml
Maven
• Needs internet first time to download
• Itself
• Dependencies
• Convention over configuration
• Standard lifecycle vs flexibility
• Build at command line or with built in
Eclipse plugin m2e
Maven
• Used by WPI in 2015 (now using gradle)
• pom.xml specifies what want done
An Eclipse plugin
https://github.com/wpilibsuite/EclipsePlugins/blob/master/e
du.wpi.first.wpilib.plugins.java/pom.xml
Gradle
• Same internet/repository model as Maven
• Uses Groovy as language instead of XML
• Shorter 
• Build at command line or with Eclipse
plugin Buildship -
https://projects.eclipse.org/projects/tools.buildshi
Smart Dashboard
https://github.com/wpilibsuite/SmartDashboard
Plugins
Dependencies
<home>/.m2 has the
repository
What should the build do?
Publishing
The End
Downloading the Internet
And the useful work
Questions
?
Twitter: @jeanneboyarsky

2017 stuysplash-build-tools