OSDN Git Service

Prepare to publish on maven
authorHiroshi Miura <miurahr@linux.com>
Sun, 24 Apr 2016 13:13:37 +0000 (22:13 +0900)
committerHiroshi Miura <miurahr@linux.com>
Sun, 24 Apr 2016 13:31:12 +0000 (22:31 +0900)
Signed-off-by: Hiroshi Miura <miurahr@linux.com>
build.gradle
build.publish.gradle [new file with mode: 0644]
gradle.properties.template

index 2e6f26a..01dc3f5 100644 (file)
@@ -1,3 +1,10 @@
+plugins {
+    // github
+    id "co.riiid.gradle" version "0.4.2"
+    // bintray
+    id "com.jfrog.bintray" version "1.6"
+}
+
 // common settings
 subprojects {
   apply plugin: 'java'
@@ -5,10 +12,10 @@ subprojects {
   apply plugin: 'checkstyle'
   apply plugin: 'findbugs'
 
-  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
@@ -42,6 +49,9 @@ subprojects {
   }
 }
 
+group = projectGroup
+version = projectVersion
+
 project(':dictzip-lib') {
   dependencies {
     testCompile 'tokyo.northside:northside-io:0.2.0'
@@ -60,3 +70,9 @@ project(':dictzip-cli') {
     testCompile 'tokyo.northside:northside-io:0.2.0'
   }
 }
+
+if (gradle.startParameter.taskNames.contains('uploadArchives') ||
+    gradle.startParameter.taskNames.contains('bintrayUpload')  ||
+    gradle.startParameter.taskNames.contains('githubRelease)) {
+  apply from: 'build.publish.gradle'
+}
diff --git a/build.publish.gradle b/build.publish.gradle
new file mode 100644 (file)
index 0000000..ee4e50c
--- /dev/null
@@ -0,0 +1,92 @@
+apply plugin: 'maven'
+apply plugin: 'signing'
+
+boolean validProperty(propertyName) {
+  try { project.property(propertyName) != null }
+  catch (MissingPropertyException) { false }
+}
+assert validProperty('signing.keyId'),             'properties for signing must be provided'
+assert validProperty('signing.secretKeyRingFile'), 'properties for signing must be provided'
+assert validProperty('sonatypeUsername'),          'properties for publish must be provided'
+assert validProperty('sonatypeFullname'),          'properties for publish must be provided'
+
+String askPassword(prompt) {
+  "${System.console().readPassword(prompt)}"
+}
+ext.'signing.password' = askPassword("Enter password for PGP key ${property('signing.keyId')}: ")
+
+signing {
+  sign configurations.archives
+}
+
+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'
+        licenses = ['GPL-3']
+        vcsUrl = projectUrl
+        labels = ['java','dictzip']
+        publicDownloadNumbers = true
+        version {
+            name = projectVersion
+            desc = projectDesc
+            vcsTag = projectTag
+        }
+    }
+}
+
+github {
+    owner = projectOwner
+    repo = 'dictzip-java'
+    token = githubToken
+    tagName = projectTag
+    targetCommitish = 'master'
+    name = projectTag
+    draft = true
+    body = projectReleaseBody
+    assets = [
+            'build/libs/dictzip-cli.jar',
+            'build/libs/dictzip-cli.jar.asc',
+            'build/libs/dictzip-lib.jar',
+            'build/libs/dictzip-lib.jar.asc',
+            'build/libs/dictzip-javadoc.jar',
+            'build/libs/dictzip-javadoc.jar.asc',
+            'build/libs/dictzip-source.jar',
+            'build/libs/dictzip-source.jar.asc'
+    ]
+}
+
+uploadArchives {
+    repositories.mavenDeployer {
+        repository url: "file://$System.env.HOME/.m2/repository"
+        beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
+        pom.project {
+            name project.name
+            packaging 'jar'
+            description projectDesc
+            url projectUrl
+            version projectVersion
+            licenses {
+                license {
+                    name 'GNU General Public License version 3.0 with classpath link exception.'
+                    distribution 'repo'
+                }
+            }
+            scm {
+                url githubUrl
+                connection "scm:git:${githubUrl}"
+                developerConnection "scm:git:${githubUrl}"
+            }
+            developers {
+                developer {
+                    id 'miurahr'
+                    name 'Hiroshi Miura'
+                    email 'miurahr@linux.com'
+                }
+            }
+        }
+    }
+}
index f544997..e935e45 100644 (file)
@@ -1,2 +1,7 @@
-# place ${project.home}/gradle.properties to set JDK7_HOME
-JDK7_HOME=/usr/lib/jvm/java-7-openjdk-amd64
+# place ${HOME}/.gradle/gradle.properties to set following private properties
+#
+bintrayUser="user"
+bintrayApiKey="key"
+signing.keyId=0ABCDE
+signing.secretKeyRingFile=$HOME/.gnupg/secring.gpg
+githubToken='XXXXXXXXXXXXXXXXXXXXXXXXXX'