1import org.gradle.api.DefaultTask 2import org.gradle.api.tasks.OutputFile 3import org.gradle.api.tasks.TaskAction 4 5class ProvideBuildClasspathTask extends DefaultTask { 6 @OutputFile File outFile 7 8 @TaskAction 9 public void writeProperties() throws Exception { 10 final Properties props = new Properties() 11 12 String preinstrumentedKey = "robolectric.usePreinstrumentedJars"; 13 boolean usePreinstrumentedJars = 14 Boolean.parseBoolean( 15 System.getProperty(preinstrumentedKey, "true")); 16 17 AndroidSdk.ALL_SDKS.each { androidSdk -> 18 String coordinates = 19 usePreinstrumentedJars ? 20 androidSdk.preinstrumentedCoordinates : androidSdk.coordinates; 21 def config = 22 project.configurations.create("sdk${androidSdk.apiLevel}") 23 project.dependencies.add( 24 "sdk${androidSdk.apiLevel}", 25 coordinates) 26 props.setProperty( 27 coordinates, 28 config.files.join(File.pathSeparator)) 29 } 30 31 File outDir = outFile.parentFile 32 if (!outDir.directory) outDir.mkdirs() 33 outFile.withPrintWriter { out -> 34 props.store(out, "# GENERATED by ${this} -- do not edit") 35 } 36 } 37} 38