Revision b816ed5cf29591659217053ae2dc58e57b77a6fc authored by kimchy on 15 May 2010, 15:10:24 UTC, committed by kimchy on 15 May 2010, 15:10:24 UTC
1 parent 723e47a
Raw File
build.gradle
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.8.0-SNAPSHOT'

explodedDistDir = new File(distsDir, 'exploded')
explodedDistLibDir = new File(explodedDistDir, 'lib')
explodedDistBinDir = new File(explodedDistDir, 'bin')
explodedDistConfigDir = new File(explodedDistDir, 'config')

//mavenRepoUrl = "file://localhost/" + projectDir.absolutePath + "/build/maven/repository"
//mavenSnapshotRepoUrl = "file://localhost/" + projectDir.absolutePath + "/build/maven/snapshotRepository"
mavenRepoUrl = "http://oss.sonatype.org/service/local/staging/deploy/maven2/"
mavenSnapshotRepoUrl = "http://oss.sonatype.org/content/repositories/snapshots"
mavenRepoUser = "kimchy"
mavenRepoPass = System.getenv("REPO_PASS")

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://elasticsearch.googlecode.com/svn/maven'
    }
}

configurations {
    dists
    distLib {
        visible = false
    }
}

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.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: "jackson-*.jar") } // no need jackson, we jarjar it
    ant.delete { fileset(dir: explodedDistLibDir, includes: "joda-*.jar") } // no need joda, we jarjar it
    ant.delete { fileset(dir: explodedDistLibDir, includes: "snakeyaml-*.jar") } // no need snakeyaml, we jarjar it
    ant.delete { fileset(dir: explodedDistLibDir, includes: "sigar-*.jar") } // no need sigar directly under lib...
    ant.delete { fileset(dir: explodedDistLibDir, includes: "netty-*.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'
        exclude 'bin/service/elasticsearch'
        exclude 'bin/service/elasticsearch32'
        exclude 'bin/service/elasticsearch64'
        exclude 'bin/service/exec/**'
    }
    from(explodedDistDir) {
        into zipRootFolder
        include 'bin/elasticsearch'
        include 'bin/plugin'
        include 'bin/service/elasticsearch'
        include 'bin/service/elasticsearch32'
        include 'bin/service/elasticsearch64'
        include 'bin/service/exec/**'
        fileMode = 0755
    }
}

task release(dependsOn: [zip]) << {
    ant.delete(dir: explodedDistDir)
}

task wrapper(type: Wrapper) {
    gradleVersion = '0.9-preview-1'
    jarPath = 'gradle'
}
back to top