logstash/logstash-core/build.gradle
Guy Boertje 63f8f86bde bump JrJackson/Jackson versions, source all version refs from versions.yml
final (I hope) fixes for consolidated versioning.

After testing with rake artifact:zip, need to try both files.
Add desc to rake test:install-* tasks, tired of
  not seeing them in rake -vT

changes requested via review

Fixes #8373

Fixes #8389
2017-09-26 17:48:35 +00:00

119 lines
3.8 KiB
Groovy

import org.yaml.snakeyaml.Yaml
// fetch version from Logstash's master versions.yml file
def versionMap = (Map) (new Yaml()).load(new File("$projectDir/../versions.yml").text)
description = """Logstash Core Java"""
version = versionMap['logstash-core']
String jrubyVersion = versionMap['jruby']['version']
String jacksonVersion = versionMap['jackson']
repositories {
mavenCentral()
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.yaml:snakeyaml:1.17'
}
}
task sourcesJar(type: org.gradle.api.tasks.bundling.Jar, dependsOn: classes) {
from sourceSets.main.allSource
classifier 'sources'
extension 'jar'
}
task javadocJar(type: org.gradle.api.tasks.bundling.Jar, dependsOn: javadoc) {
from javadoc.destinationDir
classifier 'javadoc'
extension 'jar'
}
// copy jar file into the gem lib dir but without the version number in filename
task copyGemjar(type: org.gradle.api.tasks.Copy, dependsOn: sourcesJar) {
from project.jar
into project.file('lib/logstash-core/')
rename(/(.+)-${project.version}.jar/, '$1.jar')
}
task cleanGemjar {
delete fileTree(project.file('lib/logstash-core/')) {
include '*.jar'
}
}
clean.dependsOn(cleanGemjar)
jar.finalizedBy(copyGemjar)
task gemspec_jars {
doLast {
File gemspec_jars = file("./gemspec_jars.rb")
gemspec_jars.newWriter().withWriter { w ->
w << "# This file is generated by Gradle as part of the build process. It extracts the build.gradle\n"
w << "# runtime dependencies to generate this gemspec dependencies file to be eval'ed by the gemspec\n"
w << "# for the jar-dependencies requirements.\n\n"
configurations.runtime.allDependencies.each { dependency ->
w << "gem.requirements << \"jar ${dependency.group}:${dependency.name}, ${dependency.version}\"\n"
}
}
}
}
build.finalizedBy(gemspec_jars)
configurations.create('sources')
configurations.create('javadoc')
configurations.archives {
extendsFrom configurations.sources
extendsFrom configurations.javadoc
}
artifacts {
sources(sourcesJar) {
// Weird Gradle quirk where type will be used for the extension, but only for sources
type 'jar'
}
javadoc(javadocJar) {
type 'javadoc'
}
}
configurations {
provided
}
project.sourceSets {
main.compileClasspath += project.configurations.provided
main.runtimeClasspath += project.configurations.provided
test.compileClasspath += project.configurations.provided
test.runtimeClasspath += project.configurations.provided
}
project.javadoc.classpath += project.configurations.provided
idea {
module {
scopes.PROVIDED.plus += [project.configurations.provided]
}
}
dependencies {
compile 'org.apache.logging.log4j:log4j-api:2.6.2'
compile 'org.apache.logging.log4j:log4j-core:2.6.2'
runtime 'org.apache.logging.log4j:log4j-slf4j-impl:2.6.2'
// Jackson version moved to versions.yml in the project root (the JrJackson version is there too)
compile "com.fasterxml.jackson.core:jackson-core:${jacksonVersion}"
compile "com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}"
compile "com.fasterxml.jackson.core:jackson-annotations:${jacksonVersion}"
compile "com.fasterxml.jackson.module:jackson-module-afterburner:${jacksonVersion}"
compile "com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:${jacksonVersion}"
testCompile 'org.apache.logging.log4j:log4j-core:2.6.2:tests'
testCompile 'org.apache.logging.log4j:log4j-api:2.6.2:tests'
testCompile 'junit:junit:4.12'
testCompile 'net.javacrumbs.json-unit:json-unit:1.9.0'
testCompile 'org.elasticsearch:securemock:1.2'
testCompile 'org.assertj:assertj-core:3.8.0'
provided "org.jruby:jruby-core:${jrubyVersion}"
}