3236432c39
there is really no need for minidns to be Android exclusive. Replacing the Android log API with JUL make minidns available for Android and Java SE.
127 lines
3.2 KiB
Groovy
127 lines
3.2 KiB
Groovy
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'
|
|
}
|
|
}
|
|
|
|
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
|
|
}
|