plugins { id "com.jfrog.bintray" version "1.7" id "com.github.jruby-gradle.base" version "0.1.5" id "java" id "maven" // install jar files to the local repo: $ gradle install id "maven-publish" } apply from: 'gradle/check.gradle' import com.github.jrubygradle.JRubyExec repositories { mavenCentral() jcenter() mavenLocal() } configurations { provided } group = "org.embulk.output.td" version = "0.5.1" compileJava.options.encoding = 'UTF-8' // source encoding sourceCompatibility = 1.8 targetCompatibility = 1.8 dependencies { compile "org.embulk:embulk-core:0.8.+" provided "org.embulk:embulk-core:0.8.+" compile "org.embulk:embulk-standards:0.8.+" provided "org.embulk:embulk-standards:0.8.+" compile "org.msgpack:msgpack-core:0.8.+" provided "org.msgpack:msgpack-core:0.8.+" compile "com.treasuredata.client:td-client:0.8.4" testCompile "junit:junit:4.+" testCompile "org.bigtesting:fixd:1.0.0" testCompile "org.embulk:embulk-core:0.8.+:tests" testCompile "org.mockito:mockito-core:1.9.5" } javadoc { options { locale = 'en_US' encoding = 'UTF-8' } } // bintray and publishing bintray { // write at your bintray user name and api key to ~/.gradle/gradle.properties file: user = project.hasProperty('bintray_user') ? bintray_user : '' key = project.hasProperty('bintray_api_key') ? bintray_api_key : '' publications = ['bintrayMavenRelease'] publish = true pkg { userOrg = 'embulk-output-td' repo = 'maven' name = project.name desc = 'Embulk output plugin for Treasure Data' websiteUrl = 'https://github.com/treasure-data/embulk-output-td' issueTrackerUrl = 'https://github.com/treasure-data/embulk-output-td/issues' vcsUrl = 'https://github.com/treasure-data/embulk-output-td.git' licenses = ['Apache-2.0'] labels = ['embulk', 'java'] publicDownloadNumbers = true version { name = project.version } } } publishing { publications { bintrayMavenRelease(MavenPublication) { from components.java artifact testsJar artifact sourcesJar artifact javadocJar } } } task classpath(type: Copy, dependsOn: ["jar"]) { doFirst { file("classpath").deleteDir() } from (configurations.runtime - configurations.provided + files(jar.archivePath)) into "classpath" } clean { delete 'classpath' } // add tests/javadoc/source jar tasks as artifacts to be released task testsJar(type: Jar, dependsOn: classes) { classifier = 'tests' from sourceSets.test.output } task sourcesJar(type: Jar, dependsOn: classes) { classifier = 'sources' from sourceSets.main.allSource } task javadocJar(type: Jar, dependsOn: javadoc) { classifier = 'javadoc' from javadoc.destinationDir } task gem(type: JRubyExec, dependsOn: ["gemspec", "classpath"]) { jrubyArgs "-rrubygems/gem_runner", "-eGem::GemRunner.new.run(ARGV)", "build" script "${project.name}.gemspec" doLast { ant.move(file: "${project.name}-${project.version}.gem", todir: "pkg") } } task gemPush(type: JRubyExec, dependsOn: ["gem"]) { jrubyArgs "-rrubygems/gem_runner", "-eGem::GemRunner.new.run(ARGV)", "push" script "pkg/${project.name}-${project.version}.gem" } task "package"(dependsOn: ["gemspec", "classpath"]) << { println "> Build succeeded." println "> You can run embulk with '-L ${file(".").absolutePath}' argument." } task gemspec { ext.gemspecFile = file("${project.name}.gemspec") inputs.file "build.gradle" outputs.file gemspecFile doLast { gemspecFile.write($/ Gem::Specification.new do |spec| spec.name = "${project.name}" spec.version = "${project.version}" spec.authors = ["Muga Nishizawa"] spec.summary = %[TreasureData output plugin for Embulk] spec.description = %[TreasureData output plugin is an Embulk plugin that loads records to TreasureData read by any input plugins. Search the input plugins by 'embulk-output' keyword.] spec.email = ["muga.nishizawa@gmail.com"] spec.licenses = ["Apache 2.0"] spec.homepage = "https://github.com/treasure-data/embulk-output-td" spec.files = `git ls-files`.split("\n") + Dir["classpath/*.jar"] spec.test_files = spec.files.grep(%r"^(test|spec)/") spec.require_paths = ["lib"] spec.add_development_dependency 'bundler', ['~> 1.0'] spec.add_development_dependency 'rake', ['>= 10.0'] end /$) } } clean { delete "${project.name}.gemspec" }