172 lines
5.1 KiB
Groovy
172 lines
5.1 KiB
Groovy
dependsOn(':elasticsearch')
|
|
|
|
apply plugin: 'java'
|
|
apply plugin: 'maven'
|
|
|
|
archivesBaseName = "elasticsearch-transport-memcached"
|
|
|
|
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'
|
|
|
|
jar {
|
|
// from sourceSets.main.allJava
|
|
manifest {
|
|
attributes("Implementation-Title": "ElasticSearch", "Implementation-Version": rootProject.version, "Implementation-Date": buildTimeStr)
|
|
}
|
|
}
|
|
|
|
configurations {
|
|
dists
|
|
distLib {
|
|
visible = false
|
|
transitive = false
|
|
}
|
|
}
|
|
|
|
repositories {
|
|
mavenRepo urls: "http://bleu.west.spy.net/~dustin/m2repo/"
|
|
}
|
|
|
|
dependencies {
|
|
compile project(':elasticsearch')
|
|
|
|
testCompile project(':test-testng')
|
|
testCompile('org.testng:testng:5.10:jdk15') { transitive = false }
|
|
testCompile 'spy:memcached:2.4.2'
|
|
}
|
|
|
|
test {
|
|
useTestNG()
|
|
jmvArgs = ["-ea", "-Xmx1024m"]
|
|
suiteName = project.name
|
|
listeners = ["org.elasticsearch.util.testng.Listeners"]
|
|
systemProperties["es.test.log.conf"] = System.getProperty("es.test.log.conf", "log4j-gradle.properties")
|
|
}
|
|
|
|
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
|
|
tools
|
|
}
|
|
|
|
dependencies {
|
|
deployerJars "org.apache.maven.wagon:wagon-http:1.0-beta-2"
|
|
tools "com.google.code:jarjar:1.0"
|
|
}
|
|
|
|
task sourcesJar(type: Jar, dependsOn: classes) {
|
|
classifier = 'sources'
|
|
from sourceSets.main.allSource
|
|
}
|
|
|
|
task javadocJar(type: Jar, dependsOn: javadoc) {
|
|
classifier = 'javadoc'
|
|
from javadoc.destinationDir
|
|
}
|
|
|
|
artifacts {
|
|
archives sourcesJar
|
|
archives javadocJar
|
|
}
|
|
|
|
jar << {
|
|
jarjarArchivePath = new File(jar.archivePath.absolutePath + ".jarjar.jar")
|
|
project.ant {
|
|
taskdef name: "jarjar", classname: "com.tonicsystems.jarjar.JarJarTask", classpath: configurations.tools.asPath
|
|
jarjar(jarfile: jarjarArchivePath) {
|
|
zipfileset(src: jar.archivePath)
|
|
configurations.compile.files.findAll {file ->
|
|
['netty'].any { file.name.contains(it) }
|
|
}.each { jarjarFile ->
|
|
zipfileset(src: jarjarFile) {
|
|
exclude(name: "META-INF/**")
|
|
}
|
|
}
|
|
rule pattern: "org.jboss.netty.**", result: "org.elasticsearch.util.netty.@1"
|
|
}
|
|
delete(file: jar.archivePath)
|
|
copy(file: jarjarArchivePath, tofile: jar.archivePath)
|
|
delete(file: jarjarArchivePath)
|
|
|
|
// hack, we want to reuse the jarjar of elasticsearch into util.netty, but don't want it to be in memcached jar
|
|
unjar(src: jar.archivePath, dest: "build/tmp/extracted")
|
|
delete(dir: "build/tmp/extracted/org/elasticsearch/util/netty")
|
|
delete(dir: "build/tmp/extracted/org/jboss")
|
|
|
|
delete(file: jar.archivePath)
|
|
jar(destfile: jar.archivePath, basedir: "build/tmp/extracted", manifest: "build/tmp/extracted/META-INF/MANIFEST.MF")
|
|
delete(dir: "build/tmp/extracted")
|
|
}
|
|
}
|
|
|
|
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-transport-memcached'
|
|
description 'Memcacehd 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
|
|
}
|
|
}
|
|
} |