license-cop
license-cop copied to clipboard
[AG-42] Support sbt-plugin-releases repositories when parsing Scala SBT plugins
When parsing Scala dependencies from SBT files, we find many SBT plugins declared as follows:
addSbtPlugin("com.cavorite" % "sbt-avro" % "0.3.2")
addSbtPlugin("com.julianpeeters" % "sbt-avrohugger" % "latest.integration")
These dependencies are fetched from specific repositories (they use the Ivy format). For instance, information about the com.cavorite:sbt-avro
dependency is fetched from:
http://dl.bintray.com/sbt/sbt-plugin-releases/com.cavorite/sbt-avro/scala_2.10/sbt_0.13/1.1.0/ivys/ivy.xml
Licensing and dependencies information can be obtained from processing this XML file:
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
<info organisation="com.cavorite" module="sbt-avro" revision="1.1.0" status="release" publication="20161213163356" e:sbtVersion="0.13" e:scalaVersion="2.10">
<license name="BSD 3-Clause" url="https://github.com/sbt/sbt-avro/blob/master/LICENSE"/>
<description>
Sbt plugin for compiling Avro sources
</description>
</info>
<configurations>
<conf name="compile" visibility="public" description=""/>
<conf name="runtime" visibility="public" description="" extends="compile"/>
<conf name="test" visibility="public" description="" extends="runtime"/>
<conf name="provided" visibility="public" description=""/>
<conf name="optional" visibility="public" description=""/>
<conf name="sources" visibility="public" description=""/>
<conf name="docs" visibility="public" description=""/>
<conf name="pom" visibility="public" description=""/>
</configurations>
<publications>
<artifact name="sbt-avro" type="jar" ext="jar" conf="compile"/>
<artifact name="sbt-avro" type="src" ext="jar" conf="sources" e:classifier="sources"/>
<artifact name="sbt-avro" type="doc" ext="jar" conf="docs" e:classifier="javadoc"/>
</publications>
<dependencies>
<dependency org="org.scala-lang" name="scala-library" rev="2.10.6" conf="provided->default(compile)"/>
<dependency org="org.scala-sbt" name="sbt" rev="0.13.12" conf="provided->default(compile)"/>
<dependency org="org.apache.avro" name="avro" rev="1.7.7" conf="compile->default(compile)"/>
<dependency org="org.apache.avro" name="avro-compiler" rev="1.7.7" conf="compile->default(compile)"/>
<dependency org="org.specs2" name="specs2-core_2.10" rev="3.6.4" conf="test->default(compile)"/>
</dependencies>
</ivy-module>
This is an (incomplete) list of sbt-plugin-releases repositories used by most projects:
- http://dl.bintray.com/sbt/sbt-plugin-releases/
- http://dl.bintray.com/tpolecat/sbt-plugin-releases/
Going forward, all sbt plugins can be classified as development dependencies.