Skip to content

Custom Provider

jkschneider edited this page Nov 16, 2014 · 10 revisions

The custom provider allows for complete control over the version recommendation process. Custom providers are defined by using the special add function in your dependencyRecommendations block. Custom providers may be useful for recommendations that are:

  • sourced from a database
  • scraped from GitHub
  • provided by a custom web service
  • always represented by a single fixed version

Selecting latest.release for every dependency without a version

apply plugin: 'java'
apply plugin: 'nebula-dependency-recommender'

dependencyRecommendations {
   add { org, name -> 'latest.release' }
}

dependencies {
   compile 'commons-logging:commons-logging'
   compile 'org.springframework:spring-core'
}

Selecting versions from a recommendations database

apply plugin: 'java'
apply plugin: 'nebula-dependency-recommender'

import groovy.sql.Sql

def sql = Sql.newInstance( 'jdbc:jtds:sqlserver://serverName/dbName-CLASS;domain=domainName', 
   'username', 'password', 'net.sourceforge.jtds.jdbc.Driver' )

dependencyRecommendations {
   add { org, name ->
      sql.firstRow("select version from recommendations where org = '$org' and name = '$name'")
         .version
   }
}

dependencies {
   compile 'commons-logging:commons-logging'
   ...
}