blob: 57a8e1e26f5f14aa8f80277d545a9dcbb2743739 [file] [log] [blame]
Alex Volanis7004a612018-01-24 10:30:13 -05001/*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19
20// Using the legacy plugin classpath for Clover so it can be loaded optionally
21buildscript {
Christopher Tubbsebfa7712021-02-04 14:13:24 -050022 // strictly enforce the minimum version of Java required to build and fail fast
23 if (JavaVersion.current() < JavaVersion.VERSION_1_8) {
24 throw new GradleException("The java version used is ${JavaVersion.current()}, but must be at least ${JavaVersion.VERSION_1_8}")
25 }
26
Alex Volanis7004a612018-01-24 10:30:13 -050027 repositories {
James E. King III98f379e2019-01-22 09:22:04 -050028 mavenCentral()
Alex Volanis7004a612018-01-24 10:30:13 -050029 google()
30 jcenter()
31 gradlePluginPortal()
32 }
33
34 dependencies {
James E. King III98f379e2019-01-22 09:22:04 -050035 classpath 'com.bmuschko:gradle-clover-plugin:2.2.1'
Alex Volanis7004a612018-01-24 10:30:13 -050036 }
37}
38
39plugins {
40 id 'java'
41 id 'maven'
42 id 'signing'
James E. King III98f379e2019-01-22 09:22:04 -050043 id 'com.github.johnrengelman.shadow' version '4.0.4'
D. Can Celasun76fa8c92019-10-18 15:15:45 +010044 id "com.github.spotbugs" version "2.0.0"
45}
46
47ext {
48 // https://github.com/spotbugs/spotbugs-gradle-plugin/issues/32#issuecomment-409951172
49 SpotBugsTask = com.github.spotbugs.SpotBugsTask
Alex Volanis7004a612018-01-24 10:30:13 -050050}
51
52description = 'Apache Thrift Java Library'
53
54defaultTasks 'build'
55
56// Version components for this project
57group = property('thrift.groupid')
58
Alex Volanis7004a612018-01-24 10:30:13 -050059if (Boolean.parseBoolean(project.release)) {
James E. King III98f379e2019-01-22 09:22:04 -050060 version = property('thrift.version')
Alex Volanis7004a612018-01-24 10:30:13 -050061} else {
James E. King III98f379e2019-01-22 09:22:04 -050062 version = property('thrift.version') + '-SNAPSHOT'
Alex Volanis7004a612018-01-24 10:30:13 -050063}
64
65// Keeping the rest of the build logic in functional named scripts for clarity
66apply from: 'gradle/environment.gradle'
67apply from: 'gradle/sourceConfiguration.gradle'
68apply from: 'gradle/additionalArtifacts.gradle'
69apply from: 'gradle/generateTestThrift.gradle'
70apply from: 'gradle/unitTests.gradle'
71apply from: 'gradle/cloverCoverage.gradle'
72apply from: 'gradle/functionalTests.gradle'
73apply from: 'gradle/publishing.gradle'
74apply from: 'gradle/codeQualityChecks.gradle'