import java.text.SimpleDateFormat defaultTasks "clean", "release" apply plugin: 'base' archivesBaseName = 'elasticsearch' buildTime = new Date() SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); sdf.setTimeZone(TimeZone.getTimeZone("UTC")); buildTimeStr = sdf.format(buildTime) versionNumber = '0.12.0-SNAPSHOT' explodedDistDir = new File(distsDir, 'exploded') explodedDistLibDir = new File(explodedDistDir, 'lib') explodedDistBinDir = new File(explodedDistDir, 'bin') explodedDistConfigDir = new File(explodedDistDir, 'config') mavenRepoUrl = System.getenv("REPO_URL"); if (mavenRepoUrl == null) { // mavenRepoUrl = "file://localhost/" + projectDir.absolutePath + "/build/maven/repository" mavenRepoUrl = "http://oss.sonatype.org/service/local/staging/deploy/maven2/" } mavenSnapshotRepoUrl = System.getenv("SNAPSHOT_REPO_URL"); if (mavenSnapshotRepoUrl == null) { // mavenSnapshotRepoUrl = "file://localhost/" + projectDir.absolutePath + "/build/maven/snapshotRepository" mavenSnapshotRepoUrl = "http://oss.sonatype.org/content/repositories/snapshots" } mavenRepoUser = System.getenv("REPO_USER") mavenRepoPass = System.getenv("REPO_PASS") jarjarArchivePath = project(":jarjar").file("build/libs/jarjar-$versionNumber" + ".jar").absolutePath allprojects { group = 'org.elasticsearch' version = versionNumber plugins.withType(JavaPlugin).whenPluginAdded { sourceCompatibility = 1.6 targetCompatibility = 1.6 } repositories { mavenCentral() mavenRepo urls: 'https://repository.jboss.org/nexus/content/groups/public' mavenRepo urls: 'http://repository.codehaus.org/' mavenRepo urls: 'http://elasticsearch.googlecode.com/svn/maven' mavenRepo urls: 'http://oss.sonatype.org/content/repositories/releases' mavenRepo urls: 'http://oss.sonatype.org/content/repositories/snapshots' } } configurations { dists distLib { visible = false } } //task run(dependsOn: [configurations.distLib], description: 'Runs') << { // ant.java(classname: "org.elasticsearch.bootstrap.Bootstrap", fork: "true", classpath: configurations.distLib.asPath, // jvmargs: "-Des-foreground=yes") //} dependencies { distLib project(':elasticsearch') } task explodedDist(dependsOn: [configurations.distLib], description: 'Builds a minimal distribution image') << { ant.delete(dir: explodedDistDir) // clean the exploded dir [explodedDistDir, explodedDistLibDir, explodedDistBinDir, explodedDistConfigDir]*.mkdirs() // remove old elasticsearch files ant.delete { fileset(dir: explodedDistLibDir, includes: "$archivesBaseName-*.jar") } copy { from configurations.distLib into explodedDistLibDir } copy { from('bin'); into explodedDistBinDir } copy { from('config'); into explodedDistConfigDir } copy { from('lib'); into explodedDistLibDir } copy { from('.') into explodedDistDir include 'LICENSE.txt' include 'NOTICE.txt' include 'README.textile' } ant.replace(dir: explodedDistBinDir, token: "@ES_VERSION@", value: versionNumber) ant.delete { fileset(dir: explodedDistLibDir, includes: "$archivesBaseName-*-javadoc.jar") } ant.delete { fileset(dir: explodedDistLibDir, includes: "$archivesBaseName-*-sources.jar") } ant.delete { fileset(dir: explodedDistLibDir, includes: "slf4j-*.jar") } // no need for slf4j ant.delete { fileset(dir: explodedDistLibDir, includes: "jarjar-*.jar") } // no need jackson, we jarjar it ant.delete { fileset(dir: explodedDistLibDir, includes: "sigar-*.jar") } // no need sigar directly under lib... ant.chmod(dir: "$explodedDistDir/bin", perm: "ugo+rx", includes: "**/*") } task zip(type: Zip, dependsOn: ['explodedDist']) { zipRootFolder = "$archivesBaseName-${-> version}" from(explodedDistDir) { into zipRootFolder exclude 'bin/elasticsearch' exclude 'bin/plugin' } from(explodedDistDir) { into zipRootFolder include 'bin/elasticsearch' include 'bin/plugin' fileMode = 0755 } } task release(dependsOn: [zip]) << { ant.delete(dir: explodedDistDir) } task wrapper(type: Wrapper) { gradleVersion = '0.9-rc-1' jarPath = 'gradle' }