185 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
			
		
		
	
	
			185 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
| /*
 | |
|  *
 | |
|  *    ******************************************************************************
 | |
|  *    *
 | |
|  *    * This program and the accompanying materials are made available under the
 | |
|  *    * terms of the Apache License, Version 2.0 which is available at
 | |
|  *    * https://www.apache.org/licenses/LICENSE-2.0.
 | |
|  *    *
 | |
|  *    *  See the NOTICE file distributed with this work for additional
 | |
|  *    *  information regarding copyright ownership.
 | |
|  *    * Unless required by applicable law or agreed to in writing, software
 | |
|  *    * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 | |
|  *    * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 | |
|  *    * License for the specific language governing permissions and limitations
 | |
|  *    * under the License.
 | |
|  *    *
 | |
|  *    * SPDX-License-Identifier: Apache-2.0
 | |
|  *    *****************************************************************************
 | |
|  *
 | |
|  */
 | |
| buildscript {
 | |
|     repositories {
 | |
|         mavenCentral()
 | |
|     }
 | |
|     dependencies {
 | |
|         classpath "com.vanniktech:gradle-dependency-graph-generator-plugin:0.8.0"
 | |
|         classpath 'com.google.gradle:osdetector-gradle-plugin:1.7.0'
 | |
|     }
 | |
| }
 | |
| apply plugin: "com.vanniktech.dependency.graph.generator"
 | |
| apply plugin: 'com.google.osdetector'
 | |
| 
 | |
| ext {
 | |
|     buildTarget =  (properties.CAVIS_TARGET ?: osdetector.classifier).toLowerCase() //if not defined otherwise, we build target is the same as build host
 | |
|     logger.quiet("Building host platform is '{}' and build target(s) are '{}'", osdetector.classifier, buildTarget)
 | |
|     buildSupportMatrix = [[host: "windows-x86_64",
 | |
|                                canBuild: ["windows-x86_64",
 | |
|                                            "windows-x86"]
 | |
|                         ],
 | |
|                         [host: "linux-x86_64",
 | |
|                                 canBuild: ["linux-x86_64", "linux-arm64"]
 | |
|                         ]]
 | |
|     logger.quiet("Print {}", buildSupportMatrix)
 | |
| 
 | |
|     scalaVersion = "2.12"
 | |
|     logger.quiet("Scala main version is set to {}", scalaVersion)
 | |
|     logger.quiet("Running java {}", JavaVersion.current())
 | |
| }
 | |
| 
 | |
| configurations.all {
 | |
|     resolutionStrategy {
 | |
|         // fail eagerly on version conflict (includes transitive dependencies)
 | |
|         // e.g. multiple different versions of the same dependency (group and name are equal)
 | |
|         failOnVersionConflict()
 | |
|     }
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| allprojects { Project proj ->
 | |
|     apply plugin: 'com.google.osdetector'
 | |
| 
 | |
|     version = "1.0.0-SNAPSHOT"
 | |
|     group = "net.brutex.cavis"
 | |
| 
 | |
| 
 | |
|     plugins.withType(JavaPlugin) {
 | |
|          sourceCompatibility = JavaVersion.VERSION_11
 | |
|          targetCompatibility = JavaVersion.VERSION_11
 | |
|         tasks.withType(JavaCompile) {
 | |
|             options.release = 11
 | |
|         }
 | |
|          dependencies {
 | |
| 
 | |
|              implementation platform(project(":cavis-common-platform"))
 | |
|              compileOnly platform(project(":cavis-common-platform"))
 | |
|              annotationProcessor platform(project(":cavis-common-platform"))
 | |
|              testCompileOnly  platform(project(":cavis-common-platform"))
 | |
|              testAnnotationProcessor platform(project(":cavis-common-platform"))
 | |
|              testImplementation platform(project(":cavis-common-platform"))
 | |
| 
 | |
|              compileOnly 'org.projectlombok:lombok'
 | |
|              annotationProcessor 'org.projectlombok:lombok'
 | |
|              testCompileOnly 'org.projectlombok:lombok'
 | |
|              testAnnotationProcessor 'org.projectlombok:lombok'
 | |
|              testImplementation 'org.junit.jupiter:junit-jupiter-engine'
 | |
|              testImplementation 'org.junit.jupiter:junit-jupiter-api'
 | |
|              testImplementation 'org.junit.jupiter:junit-jupiter-params'
 | |
|              implementation "org.slf4j:slf4j-api"
 | |
|              implementation "org.slf4j:slf4j-simple"
 | |
| 
 | |
|          }
 | |
|         test {
 | |
|             useJUnitPlatform {
 | |
|                 if( project.hasProperty("includeTags") ) {
 | |
|                     it.includeTags=project.getProperty("includeTags").split(",")
 | |
|                 }
 | |
|                 if( project.hasProperty("excludeTags") ) {
 | |
|                     it.excludeTags=project.getProperty("excludeTags").split(",")
 | |
|                 }
 | |
|             }
 | |
|             ignoreFailures = true
 | |
|             testLogging {
 | |
|                 events "PASSED", "SKIPPED", "FAILED", "STANDARD_OUT", "STANDARD_ERROR"
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     plugins.withType(MavenPublishPlugin) {
 | |
| 
 | |
|         publishing {
 | |
|             publications {
 | |
|                 if(! proj.name.contains("cavis-full")) {
 | |
|                     mavenJava(MavenPublication) {
 | |
|                         /* Need to verify the property exists, as some
 | |
|                     modules may not declare it (i.e. the java-platform plugin)
 | |
|                      */
 | |
|                         if (components.hasProperty("java")) {
 | |
|                             from components.java
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
|             repositories {
 | |
| 
 | |
|                 maven {
 | |
|                     name = 'LocalRemote'
 | |
|                     def releasesRepoUrl = 'https://archiva.brutex.net/repository/internal/'
 | |
|                     def snapshotsRepoUrl = 'https://archiva.brutex.net/repository/snapshots/'
 | |
|                     url = proj.version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
 | |
|                     allowInsecureProtocol = false
 | |
|                     credentials {
 | |
|                         username = mavenuser
 | |
|                         password = mavenpass
 | |
|                     }
 | |
|                 }
 | |
|                 /*
 | |
|                     maven {
 | |
|                         name = 'OSSRH'
 | |
|                         def releasesRepoUrl = 'https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/'
 | |
|                         def snapshotsRepoUrl = 'https://s01.oss.sonatype.org/content/repositories/snapshots/'
 | |
|                         url = proj.version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
 | |
|                         credentials {
 | |
|                             username = ossrhUsername
 | |
|                             password = ossrhPassword
 | |
|                         }
 | |
|                     }
 | |
| 
 | |
|                  */
 | |
| /*
 | |
|                 maven {
 | |
|                     name = 'localGitea'
 | |
|                     def releasesRepoUrl = 'http://bru3-pc.fritz.box:3000/api/packages/brutex/maven'
 | |
|                     def snapshotsRepoUrl = 'http://bru3-pc.fritz.box:3000/api/packages/brutex/maven'
 | |
|                     url = proj.version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
 | |
|                     allowInsecureProtocol = true
 | |
|                     credentials {
 | |
|                         username = mavenuser
 | |
|                         password = mavenpass
 | |
|                     }
 | |
|                 }
 | |
|                 */
 | |
| 
 | |
|             }
 | |
|         }
 | |
|      }
 | |
| }
 | |
| 
 | |
| 
 | |
| task aggregatedJavadocs(type: Javadoc, description: 'Generate javadocs from all child projects as if it was a single project', group: 'Documentation') {
 | |
|     subprojects.each { proj ->
 | |
|         proj.tasks.withType(Javadoc).each { javadocTask ->
 | |
|             logger.quiet("Adding javadoc for project " + proj.name)
 | |
|             source += javadocTask.source
 | |
|             classpath += javadocTask.classpath
 | |
|             excludes += javadocTask.excludes
 | |
|             includes += javadocTask.includes
 | |
|         }
 | |
|     }
 | |
|     destinationDir = file("$buildDir/docs/javadoc")
 | |
|     title = "$project.name $version API"
 | |
|     options.author true
 | |
|     options.links 'http://docs.oracle.com/javase/8/docs/api/'
 | |
|     options.addStringOption('Xdoclint:none', '-quiet')
 | |
| } |