aboutsummaryrefslogtreecommitdiffstats
path: root/build.gradle
diff options
context:
space:
mode:
Diffstat (limited to 'build.gradle')
-rw-r--r--build.gradle154
1 files changed, 123 insertions, 31 deletions
diff --git a/build.gradle b/build.gradle
index ae9c7693..7cf46718 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,34 +1,126 @@
-buildscript {
- repositories {
- mavenCentral()
- }
-
- dependencies {
- classpath 'com.android.tools.build:gradle:0.9.0'
- }
+apply plugin: 'java'
+apply plugin: 'eclipse'
+apply plugin: 'maven'
+apply plugin: 'osgi'
+apply plugin: 'signing'
+
+ext {
+ shortVersion = '0.1'
+ isSnapshot = true
+ gitCommit = getGitCommit()
+ isReleaseVersion = !shortVersion
+ sonatypeCredentialsAvailable = project.hasProperty('sonatypeUsername') && project.hasProperty('sonatypePassword')
+ signingRequired = isReleaseVersion
+ sonatypeSnapshotUrl = 'https://oss.sonatype.org/content/repositories/snapshots'
+ sonatypeStagingUrl = 'https://oss.sonatype.org/service/local/staging/deploy/maven2'
+ buildDate = (new java.text.SimpleDateFormat("yyyy-MM-dd")).format(new Date())
+}
+
+group = 'de.measite.minidns'
+description = "A minimal DNS client library with support for A, AAAA, NS and SRV records"
+sourceCompatibility = 1.7
+version = shortVersion
+if (isSnapshot) {
+ version += '-SNAPSHOT'
+}
+
+jar {
+ manifest {
+ instruction 'Implementation-GitRevision:', project.ext.gitCommit
+ }
+}
+
+gradle.taskGraph.whenReady { taskGraph ->
+ if (signingRequired
+ && taskGraph.allTasks.any { it instanceof Sign }) {
+ // Use Java 6's console to read from the console (no good for a CI environment)
+ Console console = System.console()
+ console.printf '\n\nWe have to sign some things in this build.\n\nPlease enter your signing details.\n\n'
+ def password = console.readPassword('GnuPG Private Key Password: ')
+
+ allprojects { ext.'signing.password' = password }
+
+ console.printf '\nThanks.\n\n'
+ }
}
-apply plugin: 'android-library'
-
-android {
- compileSdkVersion 19
- buildToolsVersion '19.0.3'
-
- // NOTE: We are using the old folder structure to also support Eclipse
- sourceSets {
- main {
- manifest.srcFile 'AndroidManifest.xml'
- java.srcDirs = ['src']
- resources.srcDirs = ['src']
- aidl.srcDirs = ['src']
- renderscript.srcDirs = ['src']
- res.srcDirs = ['res']
- assets.srcDirs = ['assets']
- }
- }
-
- // Do not abort build if lint finds errors
- lintOptions {
- abortOnError false
- }
+uploadArchives {
+ repositories {
+ mavenDeployer {
+ if (signingRequired) {
+ beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
+ }
+ repository(url: project.sonatypeStagingUrl) {
+ if (sonatypeCredentialsAvailable) {
+ authentication(userName: sonatypeUsername, password: sonatypePassword)
+ }
+ }
+ snapshotRepository(url: project.sonatypeSnapshotUrl) {
+ if (sonatypeCredentialsAvailable) {
+ authentication(userName: sonatypeUsername, password: sonatypePassword)
+ }
+ }
+
+ pom.project {
+ name 'minidns'
+ packaging 'jar'
+ inceptionYear '2014'
+ url 'https://github.com/rtreffer/minidns'
+ description project.description
+
+ issueManagement {
+ system 'GitHub'
+ url 'https://github.com/rtreffer/minidns/issues'
+ }
+
+ distributionManagement {
+ snapshotRepository {
+ id 'minidns.snapshot'
+ url project.sonatypeSnapshotUrl
+ }
+ }
+
+ scm {
+ url 'https://github.com/rtreffer/minidns'
+ connection 'scm:git:https://github.com/rtreffer/minidns.git'
+ developerConnection 'scm:git:https://github.com/rtreffer/minidns.git'
+ }
+
+ licenses {
+ license {
+ name 'The Apache Software License, Version 2.0'
+ url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+ distribution 'repo'
+ }
+ }
+
+ developers {
+ developer {
+ id 'rtreffer'
+ name 'Rene Treffer'
+ }
+ developer {
+ id 'flow'
+ name 'Florian Schmaus'
+ email 'flow@geekplace.eu'
+ }
+ }
+ }
+ }
+ }
+ signing {
+ required { signingRequired }
+ sign configurations.archives
+ }
+}
+
+def getGitCommit() {
+ def dotGit = new File("$projectDir/.git")
+ if (!dotGit.isDirectory()) return 'non-git build'
+
+ def cmd = 'git describe --all --dirty=+'
+ def proc = cmd.execute()
+ def gitCommit = proc.text.trim()
+ assert !gitCommit.isEmpty()
+ gitCommit
}