You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@Kwestor suggested that it would be easier to use Scala to implement the gradle scoverage plugin, as it directly uses some of the classes provided by the scalac-scoverage-plugin (which is itself written in Scala).
I considered using Scala when writing the first version of gradle-scct, but I decided against it because I think that gradle loads all plugins into the 'build' classpath, and this may lead to a Scala version clash between two independent plugins.
I think that the scoverage Maven plugin is written in Java, but if it was written in Scala then I would likewise expect version clash.
I think SBT deals with this by saying that a version of SBT requires a single fixed Scala version, and SBT plugins must be released against a version of SBT; i.e. a new major version of SBT requires all plugins to re-publish, and all plugins must support SBT's current Scala version.
Gradle is more flexible about these things, and this leads to low maintenance overhead for plugin writers. A single release of this plugin supported practically all versions of Scala and Scoverage (until the 1.0 release renamed some of the reporting classes).
There was some discussion in the scalac-scoverage-plugin repository about refactoring the reporting from the sbt-scoverage-plugin, moving it up to the scalac-scoverage-plugin. If this can be done in a Java/Groovy-friendly way (as the current reporting classes are), then I hope the functionality can be neatly re-used from Gradle, Maven and SBT.
The text was updated successfully, but these errors were encountered:
maiflai
changed the title
Scala vs Groovy for gradle plugin implementation (discussion, not really an issue...)
Scala vs Groovy for gradle plugin implementation
Dec 23, 2014
@Kwestor suggested that it would be easier to use Scala to implement the gradle scoverage plugin, as it directly uses some of the classes provided by the scalac-scoverage-plugin (which is itself written in Scala).
I considered using Scala when writing the first version of gradle-scct, but I decided against it because I think that gradle loads all plugins into the 'build' classpath, and this may lead to a Scala version clash between two independent plugins.
I think that the scoverage Maven plugin is written in Java, but if it was written in Scala then I would likewise expect version clash.
I think SBT deals with this by saying that a version of SBT requires a single fixed Scala version, and SBT plugins must be released against a version of SBT; i.e. a new major version of SBT requires all plugins to re-publish, and all plugins must support SBT's current Scala version.
Gradle is more flexible about these things, and this leads to low maintenance overhead for plugin writers. A single release of this plugin supported practically all versions of Scala and Scoverage (until the 1.0 release renamed some of the reporting classes).
There was some discussion in the scalac-scoverage-plugin repository about refactoring the reporting from the sbt-scoverage-plugin, moving it up to the scalac-scoverage-plugin. If this can be done in a Java/Groovy-friendly way (as the current reporting classes are), then I hope the functionality can be neatly re-used from Gradle, Maven and SBT.
The text was updated successfully, but these errors were encountered: