Skip to content

Instantly share code, notes, and snippets.

@civitaspo
Last active May 18, 2017 10:20
Show Gist options
  • Save civitaspo/b3197c90c98840037ab15e81974f526f to your computer and use it in GitHub Desktop.
Save civitaspo/b3197c90c98840037ab15e81974f526f to your computer and use it in GitHub Desktop.
modified after `embulk new java-filter test`
plugins {
id "com.jfrog.bintray" version "1.1"
id "com.github.jruby-gradle.base" version "0.1.5"
id "java"
id "checkstyle"
}
import com.github.jrubygradle.JRubyExec
repositories {
mavenCentral()
jcenter()
}
configurations {
jrubyExec.extendsFrom gems
provided
}
version = "0.1.0"
sourceCompatibility = 1.7
targetCompatibility = 1.7
dependencies {
compile "org.embulk:embulk-core:0.8.21"
provided "org.embulk:embulk-core:0.8.21"
// compile "YOUR_JAR_DEPENDENCY_GROUP:YOUR_JAR_DEPENDENCY_MODULE:YOUR_JAR_DEPENDENCY_VERSION"
testCompile "junit:junit:4.+"
// jruby
gems "rubygems:bundler:1.12.3+"
gems "rubygems:rake:10.+"
}
task classpath(type: Copy, dependsOn: ["jar"]) {
doFirst { file("classpath").deleteDir() }
from (configurations.runtime - configurations.provided + files(jar.archivePath))
into "classpath"
}
clean { delete "classpath" }
checkstyle {
configFile = file("${project.rootDir}/config/checkstyle/checkstyle.xml")
toolVersion = '6.14.1'
}
checkstyleMain {
configFile = file("${project.rootDir}/config/checkstyle/default.xml")
ignoreFailures = true
}
checkstyleTest {
configFile = file("${project.rootDir}/config/checkstyle/default.xml")
ignoreFailures = true
}
task checkstyle(type: Checkstyle) {
classpath = sourceSets.main.output + sourceSets.test.output
source = sourceSets.main.allJava + sourceSets.test.allJava
}
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", "genRakefile", "genRakeCommand"]) {
script "rake"
}
task genRakeCommand {
ext.rakeCommand = file("rake")
inputs.file "build.gradle"
outputs.file rakeCommand
doLast { rakeCommand.write($/
require "rake"
Rake.application.run
/$)
}
}
clean { delete "rake" }
task genRakefile {
ext.rakeFile = file("Rakefile")
inputs.file "build.gradle"
outputs.file rakeFile
doLast { rakeFile.write($/
require "bundler/gem_tasks"
task default: "gemPushEmbulkJavaPlugin"
task "gemPushEmbulkJavaPlugin", [:remote] => ["release:guard_clean",
"release:source_control_push"] do
rubygem_push("pkg/" + "${project.name}-${project.version}.gem") if gem_push?
end
/$)
}
}
clean { delete "Rakefile" }
task "package"(dependsOn: ["gemspec", "classpath"]) {
doLast {
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 = ["Civitaspo"]
spec.summary = %[Test filter plugin for Embulk]
spec.description = %[Test]
spec.email = ["civitaspo@gmail.com"]
spec.licenses = ["MIT"]
# TODO set this: spec.homepage = "https://github.com/civitaspo/embulk-filter-test"
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_dependency 'YOUR_GEM_DEPENDENCY', ['~> YOUR_GEM_DEPENDENCY_VERSION']
spec.add_development_dependency 'bundler', ['~> 1.0']
spec.add_development_dependency 'rake', ['>= 10.0']
end
/$)
}
}
clean { delete "${project.name}.gemspec" }
@civitaspo
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment