Gradle Summit 2017 - Introducing the Scala Multi Version Plugin and some lessons learned - Nathan Alderson
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