JWebAssembly/build.gradle
2023-05-01 21:40:58 +02:00

182 lines
5.0 KiB
Groovy

plugins {
id 'java-library'
id 'maven-publish'
id 'signing'
id 'com.github.kt3k.coveralls' version '2.11.0' // Coverage
}
def majorJavaVersion = JavaVersion.current().getMajorVersion() as int
if( majorJavaVersion < 11 ) {
sourceCompatibility = 1.8
} else {
sourceCompatibility = 11
}
group 'de.inetsoftware'
archivesBaseName = 'jwebassembly-compiler'
version = '0.4'
repositories {
mavenCentral()
maven { url 'https://jitpack.io' } // for snapshot of the API
}
dependencies {
// "compileOnly" will not add as dependency. this is different to "compile".
compileOnly 'com.google.code.findbugs:jsr305:3.0.1'
//compileOnly 'de.inetsoftware:jwebassembly-api:+'
compileOnly 'com.github.i-net-software:jwebassembly-api:master-SNAPSHOT'
testImplementation 'com.google.code.findbugs:jsr305:3.0.1'
//testCompile 'de.inetsoftware:jwebassembly-api:+'
testImplementation 'com.github.i-net-software:jwebassembly-api:master-SNAPSHOT'
testImplementation 'junit:junit:+'
testImplementation 'org.mockito:mockito-core:4.+'
testImplementation 'org.apache.commons:commons-compress:1.2'
testImplementation 'com.google.code.gson:gson:+'
}
sourceSets {
main {
java {
srcDir 'src'
}
resources {
srcDir 'src'
}
}
test {
java {
srcDir 'test'
if( majorJavaVersion >= 11 ) {
srcDir 'test11'
}
}
resources {
srcDir 'test'
}
}
}
compileJava.options.encoding = 'UTF-8'
compileJava.options.compilerArgs += ['-Xlint:all', '-Xlint:-serial', '-Xlint:-fallthrough']
compileTestJava.options.encoding = 'UTF-8'
javadoc.options.encoding = 'UTF-8'
jar {
manifest {
attributes( 'Specification-Title': 'JWebAssembly-Compiler',
'Specification-Vendor': 'i-net software',
'Specification-Version': version,
'Implementation-Title': 'JWebAssembly-Compiler',
'Implementation-Vendor': 'i-net software',
'Implementation-Version': version)
}
}
task sourcesJar(type: Jar, dependsOn: classes) {
archiveClassifier = 'sources'
from sourceSets.main.java
}
task javadocJar(type: Jar, dependsOn: javadoc) {
archiveClassifier = 'javadoc'
from javadoc.destinationDir
}
build {
dependsOn sourcesJar
dependsOn javadocJar
}
artifacts {
archives sourcesJar
archives javadocJar
}
test {
systemProperty "file.encoding", "UTF-8"
enableAssertions = true
testLogging {
showStandardStreams = true
showStackTraces = true
exceptionFormat = 'full'
events 'passed', 'skipped', 'failed'
}
}
/****************************************
* Coverage
****************************************/
apply plugin: 'jacoco'
jacocoTestReport {
tasks.coveralls.dependsOn it
reports {
xml.required = true // coveralls plugin depends on xml format report
html.required = true
}
}
check.dependsOn tasks.coveralls
/****************************************
* Deploy to Sonatype
****************************************/
publishing {
publications {
JWebAssembly(MavenPublication) {
from components.java
artifact sourcesJar
artifact javadocJar
artifactId archivesBaseName
pom {
name = 'JWebAssembly-Compiler'
description = 'A Java to WebAssembly compiler.'
url = 'https://github.com/i-net-software/JWebAssembly'
developers {
developer {
id = 'Horcrux7'
name = 'Volker Berlin'
email = 'vberlin@inetsoftware.de'
organization = 'i-net software'
organizationUrl = 'https://www.inetsoftware.de'
}
}
licenses {
license {
name = 'The Apache License, Version 2.0'
url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
scm {
connection = 'scm:git:git@github.com:i-net-software/JWebAssembly.git'
developerConnection = 'scm:git:git@github.com:i-net-software/JWebAssembly.git'
url = 'https://github.com/i-net-software/JWebAssembly'
}
}
}
}
repositories {
maven {
url 'https://oss.sonatype.org/service/local/staging/deploy/maven2'
if (project.hasProperty("ossrhUsername") ) {
credentials {
username ossrhUsername
password ossrhPassword
}
}
}
}
}
signing {
if (project.hasProperty("signing.keyId") ){
sign publishing.publications.JWebAssembly
// does not create sha256 and sha512 checksums
System.setProperty('org.gradle.internal.publish.checksums.insecure', 'true' )
}
}