Gradle Summit - June 22 - 23, 2017 - No Fluff Just Stuff

Introducing the Scala Multi-Version Plugin (and some lessons learned)

Gradle Summit

Palo Alto · June 22 - 23, 2017

You are viewing details from a past event

About this Presentation

With Scala, updates from one major version to the next are source compatible, but are not binary compatible. To accommodate this, most Scala libraries will publish artifacts compiled for multiple versions of Scala. Until recently, however, there was no easy way to accomplish this with Gradle. This talk will introduce a recently open-sourced Gradle plugin to achieve this. We will then use the plugin to explore some interesting challenges that arose while developing the plugin, and the approaches that were taken to solve them. Topics will include: using GradleBuild tasks to perform recursive Gradle builds, modifying dependency resolution strategies, manipulating POM files, and more.

  • Introduce the problem of producing a Scala library for multiple versions of Scala
  • Challenge 1: Building multiple times with different build parameters
  • Challenge 2: Including placeholders in dependency names
  • Challenge 3: Removing placeholders from POM file dependencies
  • Challenge 4: Testing
Nathan Alderson

Software Engineer at ADTRAN

Nathan is a software engineer at ADTRAN in a cloud platforms group where he helps design and build a buzzword-compatible, horizontally-scalable, highly-available microservices platform for network management systems. Since its inception nearly two years ago, the project has utilized Gradle as a build tool for Scala services and libraries, as well as some other tasks. In addition to some in-house plugins, Nathan is the author of the recently open-sourced Scala Multi-Version Plugin for Gradle.