Select Git revision
build.gradle
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
build.gradle 3.39 KiB
plugins {
id "application"
id 'java-library'
id 'eclipse'
id 'maven-publish'
id 'jacoco'
id 'signing'
id "com.gradleup.shadow" version "8.3.6"
}
project.group = 'de.hhu.stups'
project.version = "1.4.1-SNAPSHOT"
final isSnapshot = project.version.endsWith("-SNAPSHOT")
repositories {
mavenCentral()
if (isSnapshot) {
maven {
name = "sonatype snapshots"
url = "https://oss.sonatype.org/content/repositories/snapshots"
}
}
}
configurations.configureEach {
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
def parser_version = '2.15.0'
dependencies {
implementation(group: 'commons-cli', name: 'commons-cli', version: '1.9.0')
api(group: 'de.hhu.stups', name: 'tlatools', version: '1.1.0')
api(group: 'de.hhu.stups', name: 'prologlib', version: parser_version)
api(group: 'de.hhu.stups', name: 'bparser', version: parser_version)
testImplementation(group: 'junit', name: 'junit', version: '4.13.2')
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
withSourcesJar()
withJavadocJar()
}
application {
mainClass = "de.tla2b.TLA2B"
}
jar {
manifest {
attributes([
"Main-Class": application.mainClass,
])
}
}
shadowJar {
archiveFileName = 'TLA2B.jar'
}
// Don't publish the shadowJar to Maven Central. Code from:
// https://github.com/johnrengelman/shadow/issues/586#issuecomment-708375599
// https://github.com/johnrengelman/shadow/issues/651#issuecomment-815921124
components.java.withVariantsFromConfiguration(configurations.shadowRuntimeElements) {
skip()
}
processResources {
inputs.property("project.version", project.version)
filesMatching("de/tla2b/build.properties") {
expand(version: project.version)
}
}
jacoco {
toolVersion = "0.8.9"
reportsDirectory = file("$buildDir/customJacocoReportDir")
}
// type 'gradle tla2b jacocoIntegrationTestReport' in order to run the jacoco code coverage analysis
tasks.register('jacocoIntegrationTestReport', JacocoReport) {
sourceSets sourceSets.main
//executionData files('build/jacoco/integrationTests.exec')
executionData fileTree(project.rootDir.absolutePath).include("**/build/jacoco/*.exec")
}
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
pom {
name = 'TLA+ to B-AST'
description = "Translator from TLA+ to ProB's AST representation."
url = 'https://github.com/hhu-stups/tla2bAST'
licenses {
license {
name = 'Eclipse Public License, Version 1.0'
url = 'https://www.eclipse.org/legal/epl-v10.html'
}
}
scm {
connection = 'scm:git:https://github.com/hhu-stups/tla2bAST.git'
developerConnection = 'scm:git:git@github.com:hhu-stups/tla2bAST.git'
url = 'https://github.com/hhu-stups/tla2bAST'
}
developers {
developer {
id = 'bendisposto'
name = 'Jens Bendisposto'
email = 'jens@bendisposto.de'
}
}
}
}
}
repositories {
maven {
final releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2"
final snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots"
url = isSnapshot ? snapshotsRepoUrl : releasesRepoUrl
if (project.hasProperty('ossrhUsername') && project.hasProperty('ossrhPassword')) {
credentials {
username = project.ossrhUsername
password = project.ossrhPassword
}
}
}
}
}
ext."signing.secretKeyRingFile" = rootProject.file("secring.gpg").absolutePath
signing {
sign publishing.publications.mavenJava
}