mirror of
https://github.com/pgpainless/pgpainless.git
synced 2024-11-29 07:42:06 +01:00
WIP: Fix build.gradle
This commit is contained in:
parent
8b40bfc9ef
commit
e6dabe0775
3 changed files with 120 additions and 29 deletions
120
build.gradle
120
build.gradle
|
@ -1,3 +1,5 @@
|
||||||
|
import java.text.SimpleDateFormat
|
||||||
|
|
||||||
buildscript {
|
buildscript {
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
|
@ -12,11 +14,43 @@ buildscript {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id 'java'
|
||||||
|
|
||||||
|
id 'idea'
|
||||||
|
id 'eclipse'
|
||||||
|
|
||||||
|
id 'maven'
|
||||||
|
id 'maven-publish'
|
||||||
|
|
||||||
|
id 'ru.vyarus.animalsniffer' version '1.4.3'
|
||||||
|
|
||||||
|
id 'checkstyle'
|
||||||
|
}
|
||||||
|
|
||||||
apply from: 'version.gradle'
|
apply from: 'version.gradle'
|
||||||
|
|
||||||
allprojects {
|
allprojects {
|
||||||
|
|
||||||
apply from: 'plugins.gradle'
|
apply plugin: 'java'
|
||||||
|
apply plugin: 'idea'
|
||||||
|
apply plugin: 'eclipse'
|
||||||
|
apply plugin: 'checkstyle'
|
||||||
|
|
||||||
|
// animalsniffer
|
||||||
|
apply plugin: 'ru.vyarus.animalsniffer'
|
||||||
|
dependencies {
|
||||||
|
signature "net.sf.androidscents.signature:android-api-level-${pgpainlessMinAndroidSdk}:2.3.1_r2@signature"
|
||||||
|
}
|
||||||
|
animalsniffer {
|
||||||
|
sourceSets = [sourceSets.main]
|
||||||
|
}
|
||||||
|
|
||||||
|
// checkstyle
|
||||||
|
checkstyle {
|
||||||
|
configFile = 'config/checkstyle.xml' as File
|
||||||
|
toolVersion = '8.10'
|
||||||
|
}
|
||||||
|
|
||||||
group 'org.pgpainless'
|
group 'org.pgpainless'
|
||||||
description = "Simple to use OpenPGP API for Java based on Bouncycastle"
|
description = "Simple to use OpenPGP API for Java based on Bouncycastle"
|
||||||
|
@ -27,6 +61,33 @@ allprojects {
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ext {
|
||||||
|
junitVersion = 4.12
|
||||||
|
androidBootClasspath = getAndroidRuntimeJar(pgpainlessMinAndroidSdk)
|
||||||
|
rootConfigDir = new File(rootDir, 'config')
|
||||||
|
gitCommit = getGitCommit()
|
||||||
|
builtDate = (new SimpleDateFormat("yyyy-MM-dd")).format(new Date())
|
||||||
|
isReleaseVersion = !isSnapshot
|
||||||
|
signingRequired = isReleaseVersion
|
||||||
|
sonatypeCredentialsAvailable = project.hasProperty('sonatypeUsername') && project.hasProperty('sonatypePassword')
|
||||||
|
sonatypeSnapshotUrl = 'https://oss.sonatype.org/content/repositories/snapshots'
|
||||||
|
sonatypeStagingUrl = 'https://oss.sonatype.org/service/local/staging/deploy/maven2'
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isSnapshot) {
|
||||||
|
version = version + '-SNAPSHOT'
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!ext.isSnapshot && !'git describe --exact-match HEAD'.execute().text.trim().equals(ext.shortVersion)) {
|
||||||
|
throw new InvalidUserDataException('Untagged version detected! Please tag every release.')
|
||||||
|
}
|
||||||
|
if (!version.endsWith('-SNAPSHOT') && version != 'git tag --points-at HEAD'.execute().text.trim()) {
|
||||||
|
throw new InvalidUserDataException(
|
||||||
|
'Tag mismatch detected, version is ' + version + ' but should be ' +
|
||||||
|
'git tag --points-at HEAD'.execute().text.trim())
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
subprojects {
|
subprojects {
|
||||||
|
@ -107,3 +168,60 @@ subprojects {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def getAndroidRuntimeJar(androidSdkApiLevel) {
|
||||||
|
def androidHome = getAndroidHome()
|
||||||
|
def androidJar = new File("$androidHome/platforms/android-$androidSdkApiLevel/android.jar")
|
||||||
|
if (androidJar.isFile()) {
|
||||||
|
return androidJar
|
||||||
|
} else {
|
||||||
|
throw new Exception("Can't find android.jar for API level $androidSdkApiLevel at $androidHome/platforms/android-$androidSdkApiLevel/android.jar. Please install corresponding SDK platform package")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
def getAndroidHome() {
|
||||||
|
def androidHomeEnv = System.getenv("ANDROID_HOME")
|
||||||
|
if (androidHomeEnv == null) {
|
||||||
|
throw new Exception("ANDROID_HOME environment variable is not set")
|
||||||
|
}
|
||||||
|
def androidHome = new File(androidHomeEnv)
|
||||||
|
if (!androidHome.isDirectory()) throw new Exception("Environment variable ANDROID_HOME is not pointing to a directory")
|
||||||
|
return androidHome
|
||||||
|
}
|
||||||
|
|
||||||
|
def getGitCommit() {
|
||||||
|
def dotGit = new File("$projectDir/.git")
|
||||||
|
if (!dotGit.isDirectory()) return 'non-git build'
|
||||||
|
|
||||||
|
def cmd = 'git describe --always --tags --dirty=+'
|
||||||
|
def proc = cmd.execute()
|
||||||
|
def gitCommit = proc.text.trim()
|
||||||
|
assert !gitCommit.isEmpty()
|
||||||
|
|
||||||
|
def srCmd = 'git symbolic-ref --short HEAD'
|
||||||
|
def srProc = srCmd.execute()
|
||||||
|
srProc.waitForOrKill(10 * 1000)
|
||||||
|
if (srProc.exitValue() == 0) {
|
||||||
|
// Only add the information if the git command was
|
||||||
|
// successful. There may be no symbolic reference for HEAD if
|
||||||
|
// e.g. in detached mode.
|
||||||
|
def symbolicReference = srProc.text.trim()
|
||||||
|
assert !symbolicReference.isEmpty()
|
||||||
|
gitCommit += "-$symbolicReference"
|
||||||
|
}
|
||||||
|
|
||||||
|
gitCommit
|
||||||
|
}
|
||||||
|
|
||||||
|
task javadocAll(type: Javadoc) {
|
||||||
|
source subprojects.collect {project ->
|
||||||
|
project.sourceSets.main.allJava }
|
||||||
|
destinationDir = new File(buildDir, 'javadoc')
|
||||||
|
// Might need a classpath
|
||||||
|
classpath = files(subprojects.collect {project ->
|
||||||
|
project.sourceSets.main.compileClasspath})
|
||||||
|
options.linkSource = true
|
||||||
|
options.use = true
|
||||||
|
options.links = [
|
||||||
|
"https://docs.oracle.com/javase/${sourceCompatibility.getMajorVersion()}/docs/api/",
|
||||||
|
] as String[]
|
||||||
|
}
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
plugins {
|
|
||||||
id 'java'
|
|
||||||
|
|
||||||
id 'idea'
|
|
||||||
id 'eclipse'
|
|
||||||
|
|
||||||
id 'maven'
|
|
||||||
id 'maven-publish'
|
|
||||||
|
|
||||||
id 'ru.vyarus.animalsniffer' version '1.4.3'
|
|
||||||
|
|
||||||
id 'checkstyle'
|
|
||||||
}
|
|
||||||
|
|
||||||
// animalsniffer
|
|
||||||
dependencies {
|
|
||||||
signature "net.sf.androidscents.signature:android-api-level-${pgpainlessMinAndroidSdk}:2.3.1_r2@signature"
|
|
||||||
}
|
|
||||||
animalsniffer {
|
|
||||||
sourceSets = [sourceSets.main]
|
|
||||||
}
|
|
||||||
|
|
||||||
// checkstyle
|
|
||||||
checkstyle {
|
|
||||||
configFile = 'config/checkstyle.xml' as File
|
|
||||||
toolVersion = '8.10'
|
|
||||||
}
|
|
|
@ -4,6 +4,6 @@ allprojects {
|
||||||
shortVersion = '0.0.1'
|
shortVersion = '0.0.1'
|
||||||
isSnapshot = true
|
isSnapshot = true
|
||||||
pgpainlessMinAndroidSdk = 9
|
pgpainlessMinAndroidSdk = 9
|
||||||
javaSourceCompatibility = 1.7
|
javaSourceCompatibility = 1.8
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue