OSDN Git Service

Prepare next release
[dictzip-java/dictzip-java.git] / build.gradle
index 8e54dad..a277eee 100644 (file)
@@ -1,14 +1,26 @@
+import org.apache.tools.ant.filters.ReplaceTokens
+
+plugins {
+    // github
+    id "co.riiid.gradle" version "0.4.2"
+    // bintray
+    id "com.jfrog.bintray" version "1.6"
+}
+
 // common settings
 subprojects {
   apply plugin: 'java'
   apply plugin: 'jacoco'
   apply plugin: 'checkstyle'
   apply plugin: 'findbugs'
+  apply plugin: 'co.riiid.gradle'
+  apply plugin: 'com.jfrog.bintray'
+  apply plugin: 'maven'
 
-  sourceCompatibility = '1.7'
-  targetCompatibility = '1.7'
+  sourceCompatibility = jdkVersion
+  targetCompatibility = jdkVersion
   [compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
-  [compileJava, compileTestJava]*.options*.bootClasspath = "$JDK7_HOME/jre/lib/rt.jar"
+  [compileJava, compileTestJava]*.options*.bootClasspath = "$JDK_HOME/jre/lib/rt.jar"
   checkstyle {
     config = resources.text.fromFile("${rootProject.projectDir}/config/checkstyle/checkstyle.xml")
     ignoreFailures = true
@@ -26,6 +38,7 @@ subprojects {
   }
 
   repositories {
+    jcenter()
     mavenCentral()
   }
 
@@ -36,18 +49,116 @@ subprojects {
   test {
     useTestNG()
   }
+
+  javadoc {
+    options.locale = 'en_US'
+  }
+
+  task sourceJar(type: Jar) {
+      from sourceSets.main.allSource
+      classifier = 'sources'
+  }
+
+  task javadocJar(type: Jar, dependsOn: javadoc) {
+      classifier = 'javadoc'
+      from javadoc.destinationDir
+  }
+
+  artifacts {
+      archives jar
+      archives sourceJar
+      archives javadocJar
+  }
 }
 
-project(':dictzip-lib') {}
+project(':dictzip-lib') {
+  dependencies {
+    testCompile 'tokyo.northside:northside-io:0.2.0'
+  }
+  version = projectVersion
+  group = projectGroup
+  bintray {
+      user = project.hasProperty('bintrayUser') ? project.property('bintrayUser') : System.getenv('BINTRAY_USER')
+      key = project.hasProperty('bintrayApiKey') ? project.property('bintrayApiKey') : System.getenv('BINTRAY_API_KEY')
+      configurations = ['archives']
+      pkg {
+          repo = 'maven'
+          name = 'dictzip-lib'
+          userOrg = 'dictzip'
+          licenses = ['GPL-2.0+CE']
+          vcsUrl = projectUrl
+          labels = ['java','dictzip']
+          publicDownloadNumbers = true
+      }
+  }
+  task mandoc << {}
+  task githubRelease(overwrite: true) << {}
+}
 
 project(':dictzip-cli') {
   apply plugin: 'application'
   mainClassName = 'org.dict.zip.cli.Main'
-  applicationName = 'DictZip'
+  applicationName = 'dictzip'
 
   dependencies {
     compile project(':dictzip-lib'),
-       'commons-codec:commons-codec:1.10',
        'gnu.getopt:java-getopt:1.0.13'
+    testCompile 'tokyo.northside:northside-io:0.2.0'
   }
+  version = projectVersion
+  group = projectGroup
+  bintray {
+      user = project.hasProperty('bintrayUser') ? project.property('bintrayUser') : System.getenv('BINTRAY_USER')
+      key = project.hasProperty('bintrayApiKey') ? project.property('bintrayApiKey') : System.getenv('BINTRAY_API_KEY')
+      configurations = ['archives']
+      pkg {
+          repo = 'maven'
+          name = 'dictzip-cli'
+          userOrg = 'dictzip'
+          licenses = ['GPL-3.0']
+          vcsUrl = projectUrl
+          labels = ['java','dictzip']
+          publicDownloadNumbers = true
+      }
+  }
+
+  task mandoc(type: Copy, overwrite: true) {
+    from "doc/dictzip.1.in"
+    into 'build/docs'
+    rename { String fileName ->
+        fileName.replace('dictzip.1.in', 'dictzip.1')
+    }
+    filter(ReplaceTokens, tokens: [copyright: projectYears, version: projectVersion])
+  }
+
+  distTar {
+    compression = Compression.GZIP
+  }
+  distTar.dependsOn mandoc
+
+  distributions {
+      main {
+          baseName = 'dictzip'
+          contents {
+              from('build/docs/dictzip.1') {
+                  into 'docs/man/man1'
+              }
+              from(javadocJar) {
+                  into 'docs'
+              }
+              from(sourceJar) {
+                  into 'source'
+              }
+          }
+      }
+  }
+  task githubRelease(overwrite: true) << {}
+}
+
+task mandoc << {}
+task bintrayUpload(overwrite: true) << {}
+
+if (gradle.startParameter.taskNames.contains('bintrayUpload')  ||
+    gradle.startParameter.taskNames.contains('githubRelease')) {
+  apply from: 'build.publish.gradle'
 }