mirror of
https://github.com/hierynomus/sshj.git
synced 2025-12-06 07:10:53 +03:00
224 lines
5.9 KiB
Groovy
224 lines
5.9 KiB
Groovy
import java.text.SimpleDateFormat
|
|
|
|
plugins {
|
|
id "java"
|
|
id "groovy"
|
|
id "osgi"
|
|
id "maven-publish"
|
|
id "org.ajoberstar.release-opinion" version "1.4.2"
|
|
id "com.github.hierynomus.license" version "0.12.1"
|
|
id "com.jfrog.bintray" version "1.7"
|
|
id 'ru.vyarus.pom' version '1.0.3'
|
|
id 'ru.vyarus.github-info' version '1.1.0'
|
|
}
|
|
|
|
group = "com.hierynomus"
|
|
defaultTasks "build"
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
sourceCompatibility = 1.6
|
|
targetCompatibility = 1.6
|
|
|
|
configurations.compile.transitive = false
|
|
|
|
def bouncycastleVersion = "1.51"
|
|
|
|
dependencies {
|
|
compile "org.slf4j:slf4j-api:1.7.7"
|
|
compile "org.bouncycastle:bcprov-jdk15on:$bouncycastleVersion"
|
|
compile "org.bouncycastle:bcpkix-jdk15on:$bouncycastleVersion"
|
|
compile "com.jcraft:jzlib:1.1.3"
|
|
|
|
compile "net.i2p.crypto:eddsa:0.1.0"
|
|
|
|
testCompile "junit:junit:4.11"
|
|
testCompile 'org.spockframework:spock-core:1.0-groovy-2.4'
|
|
testCompile "org.mockito:mockito-core:1.9.5"
|
|
testCompile "org.apache.sshd:sshd-core:1.1.0"
|
|
testRuntime "ch.qos.logback:logback-classic:1.1.2"
|
|
testCompile 'org.glassfish.grizzly:grizzly-http-server:2.3.17'
|
|
testCompile 'org.apache.httpcomponents:httpclient:4.5.2'
|
|
|
|
}
|
|
|
|
license {
|
|
header rootProject.file('LICENSE_HEADER')
|
|
strictCheck true
|
|
mapping {
|
|
java = 'SLASHSTAR_STYLE'
|
|
}
|
|
excludes(['**/djb/Curve25519.java', '**/sshj/common/Base64.java'])
|
|
}
|
|
|
|
if (project.file('.git').isDirectory()) {
|
|
release {
|
|
grgit = org.ajoberstar.grgit.Grgit.open(project.projectDir)
|
|
}
|
|
} else {
|
|
version = "0.0.0-no.git"
|
|
}
|
|
|
|
// This disables the pedantic doclint feature of JDK8
|
|
if (JavaVersion.current().isJava8Compatible()) {
|
|
tasks.withType(Javadoc) {
|
|
options.addStringOption('Xdoclint:none', '-quiet')
|
|
}
|
|
}
|
|
|
|
task writeSshjVersionProperties << {
|
|
project.file("${project.buildDir}/resources/main").mkdirs()
|
|
project.file("${project.buildDir}/resources/main/sshj.properties").withWriter { w ->
|
|
w.append("sshj.version=${version}")
|
|
}
|
|
}
|
|
|
|
jar.dependsOn writeSshjVersionProperties
|
|
|
|
jar {
|
|
manifest {
|
|
instruction "Bundle-Description", "SSHv2 library for Java"
|
|
instruction "Bundle-License", "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
|
instruction "Import-Package", "!net.schmizz.*"
|
|
instruction "Import-Package", "javax.crypto*"
|
|
instruction "Import-Package", "!net.i2p.crypto.eddsa.math"
|
|
instruction "Import-Package", "net.i2p*"
|
|
instruction "Import-Package", "com.jcraft.jzlib*;version=\"[1.1,2)\";resolution:=optional"
|
|
instruction "Import-Package", "org.slf4j*;version=\"[1.7,5)\""
|
|
instruction "Import-Package", "org.bouncycastle*"
|
|
instruction "Import-Package", "*"
|
|
instruction "Export-Package", "net.schmizz.*"
|
|
}
|
|
}
|
|
|
|
task javadocJar(type: Jar) {
|
|
classifier = 'javadoc'
|
|
from javadoc
|
|
}
|
|
|
|
task sourcesJar(type: Jar) {
|
|
classifier = 'sources'
|
|
from sourceSets.main.allSource
|
|
manifest {
|
|
attributes(
|
|
// Add the needed OSGI attributes
|
|
"Bundle-ManifestVersion": "2",
|
|
"Bundle-Name": "${project.jar.manifest.name} Source",
|
|
"Bundle-Version": project.jar.manifest.version,
|
|
"Eclipse-SourceBundle": "${project.jar.manifest.symbolicName};version=\"${project.jar.manifest.version}\";roots:=\".\"",
|
|
"Bundle-SymbolicName": "${project.jar.manifest.symbolicName}.source"
|
|
)
|
|
}
|
|
}
|
|
|
|
tasks.withType(Test) {
|
|
testLogging {
|
|
exceptionFormat = 'full'
|
|
}
|
|
include "**/*Test.*"
|
|
include "**/*Spec.*"
|
|
if (!project.hasProperty("allTests")) {
|
|
useJUnit {
|
|
excludeCategories 'com.hierynomus.sshj.test.SlowTests'
|
|
excludeCategories 'com.hierynomus.sshj.test.KnownFailingTests'
|
|
}
|
|
}
|
|
|
|
afterSuite { descriptor, result ->
|
|
if (descriptor.className != null) {
|
|
def indicator = "\u001B[32m✓\u001b[0m"
|
|
if (result.failedTestCount > 0) {
|
|
indicator = "\u001B[31m✘\u001b[0m"
|
|
}
|
|
logger.lifecycle("$indicator Test ${descriptor.name}; Executed: ${result.testCount}/\u001B[32m${result.successfulTestCount}\u001B[0m/\u001B[31m${result.failedTestCount}\u001B[0m")
|
|
}
|
|
}
|
|
}
|
|
|
|
project.tasks.compileGroovy.onlyIf { false }
|
|
|
|
github {
|
|
user 'hierynomus'
|
|
license 'Apache'
|
|
}
|
|
|
|
pom {
|
|
description "SSHv2 library for Java"
|
|
url "https://github.com/hierynomus/sshj"
|
|
inceptionYear "2009"
|
|
developers {
|
|
developer {
|
|
id "hierynomus"
|
|
name "Jeroen van Erp"
|
|
email "jeroen@javadude.nl"
|
|
roles {
|
|
role "Lead developer"
|
|
}
|
|
}
|
|
developer {
|
|
id "shikhar"
|
|
name "Shikhar Bhushan"
|
|
email "shikhar@schmizz.net"
|
|
url "http://schmizz.net"
|
|
roles {
|
|
role "Previous lead developer"
|
|
}
|
|
}
|
|
developer {
|
|
id "iterate"
|
|
name "David Kocher"
|
|
email "dkocher@iterate.ch"
|
|
organization "iterage GmbH"
|
|
organizationUrl "https://iterate.ch"
|
|
roles {
|
|
role "Developer"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
publishing.publications {
|
|
Sshj(MavenPublication) {
|
|
from components.java
|
|
artifact sourcesJar
|
|
artifact javadocJar
|
|
}
|
|
}
|
|
|
|
|
|
if (project.hasProperty("bintrayUsername") && project.hasProperty("bintrayApiKey")) {
|
|
bintray {
|
|
user = project.property("bintrayUsername")
|
|
key = project.property("bintrayApiKey")
|
|
publish = true
|
|
publications = ["Sshj"]
|
|
pkg {
|
|
repo = "maven"
|
|
name = project.name
|
|
licenses = ["Apache-2.0"]
|
|
vcsUrl = "https://github.com/hierynomus/sshj.git"
|
|
labels = ["ssh", "sftp", "secure-shell", "network", "file-transfer"]
|
|
githubRepo = "hierynomus/sshj"
|
|
version {
|
|
name = project.version.toString()
|
|
vcsTag = "v${project.version}"
|
|
released = new SimpleDateFormat('yyyy-MM-dd\'T\'HH:mm:ss.SSSZZ').format(new Date())
|
|
gpg {
|
|
sign = true
|
|
passphrase = project.property("signing.password")
|
|
}
|
|
mavenCentralSync {
|
|
sync = true
|
|
user = project.property("sonatypeUsername")
|
|
password = project.property("sonatypePassword")
|
|
close = 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
project.tasks.release.dependsOn([project.tasks.build, project.tasks.bintrayUpload])
|