dependsOn(':elasticsearch') apply plugin: 'java' apply plugin: 'maven' apply plugin: 'eclipse' archivesBaseName = "elasticsearch-lang-javascript" explodedDistDir = new File(distsDir, 'exploded') configurations.compile.transitive = true configurations.testCompile.transitive = true // no need to use the resource dir sourceSets.main.resources.srcDirs 'src/main/java' sourceSets.test.resources.srcDirs 'src/test/java' // add the source files to the dist jar //jar { // from sourceSets.main.allSource //} configurations { dists distLib { visible = false transitive = false } } dependencies { compile project(':elasticsearch') compile('rhino:js:1.7R2') distLib('rhino:js:1.7R2') { transitive = false } } task explodedDist(dependsOn: [jar], description: 'Builds the plugin zip file') << { [explodedDistDir]*.mkdirs() copy { from configurations.distLib into explodedDistDir } // remove elasticsearch files (compile above adds the elasticsearch one) ant.delete { fileset(dir: explodedDistDir, includes: "elasticsearch-*.jar") } copy { from libsDir into explodedDistDir } ant.delete { fileset(dir: explodedDistDir, includes: "elasticsearch-*-javadoc.jar") } ant.delete { fileset(dir: explodedDistDir, includes: "elasticsearch-*-sources.jar") } } task zip(type: Zip, dependsOn: ['explodedDist']) { from(explodedDistDir) { } } task release(dependsOn: [zip]) << { ant.delete(dir: explodedDistDir) copy { from distsDir into(new File(rootProject.distsDir, "plugins")) } } configurations { deployerJars } dependencies { deployerJars "org.apache.maven.wagon:wagon-http:1.0-beta-2" } task sourcesJar(type: Jar, dependsOn: classes) { classifier = 'sources' from sourceSets.main.allSource } task javadocJar(type: Jar, dependsOn: javadoc) { classifier = 'javadoc' from javadoc.destinationDir } jar { // from sourceSets.main.allJava manifest { attributes("Implementation-Title": "ElasticSearch", "Implementation-Version": rootProject.version, "Implementation-Date": buildTimeStr) } } artifacts { archives sourcesJar archives javadocJar } uploadArchives { repositories.mavenDeployer { configuration = configurations.deployerJars repository(url: rootProject.mavenRepoUrl) { authentication(userName: rootProject.mavenRepoUser, password: rootProject.mavenRepoPass) } snapshotRepository(url: rootProject.mavenSnapshotRepoUrl) { authentication(userName: rootProject.mavenRepoUser, password: rootProject.mavenRepoPass) } pom.project { inceptionYear '2009' name 'elasticsearch-plugins-lang-javascript' description 'JavaScript Plugin for ElasticSearch' licenses { license { name 'The Apache Software License, Version 2.0' url 'http://www.apache.org/licenses/LICENSE-2.0.txt' distribution 'repo' } } scm { connection 'git://github.com/elasticsearch/elasticsearch.git' developerConnection 'git@github.com:elasticsearch/elasticsearch.git' url 'http://github.com/elasticsearch/elasticsearch' } } pom.whenConfigured {pom -> pom.dependencies = pom.dependencies.findAll {dep -> dep.scope != 'test' } // removes the test scoped ones } } } eclipseClasspath { defaultOutputDir = file('build/eclipse-build') }