Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • release/1.1.4
  • release/1.1.3
  • release/1.1.1
  • 1.4.1
  • 1.4.0
  • 1.3.0
  • 1.2.1
  • 1.2.0
  • 1.1.5
  • 1.1.4
  • 1.1.3
  • 1.1.1
  • 1.1.0
  • 1.0.9
  • 1.0.8
  • 1.0.7
  • v1.0.5
  • 1.0.5
19 results

build.gradle

Blame
  • 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
    }