blob: 9184f7b97e306348074d2aac8e08a447b758e4cd [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 {
22 repositories {
James E. King III98f379e2019-01-22 09:22:04 -050023 mavenCentral()
Alex Volanis7004a612018-01-24 10:30:13 -050024 google()
25 jcenter()
26 gradlePluginPortal()
27 }
28
29 dependencies {
James E. King III98f379e2019-01-22 09:22:04 -050030 classpath 'com.bmuschko:gradle-clover-plugin:2.2.1'
Alex Volanis7004a612018-01-24 10:30:13 -050031 }
32}
33
34plugins {
35 id 'java'
36 id 'maven'
37 id 'signing'
James E. King III98f379e2019-01-22 09:22:04 -050038 id 'com.github.johnrengelman.shadow' version '4.0.4'
D. Can Celasun76fa8c92019-10-18 15:15:45 +010039 id "com.github.spotbugs" version "2.0.0"
40}
41
42ext {
43 // https://github.com/spotbugs/spotbugs-gradle-plugin/issues/32#issuecomment-409951172
44 SpotBugsTask = com.github.spotbugs.SpotBugsTask
Alex Volanis7004a612018-01-24 10:30:13 -050045}
46
47description = 'Apache Thrift Java Library'
48
49defaultTasks 'build'
50
51// Version components for this project
52group = property('thrift.groupid')
53
Alex Volanis7004a612018-01-24 10:30:13 -050054if (Boolean.parseBoolean(project.release)) {
James E. King III98f379e2019-01-22 09:22:04 -050055 version = property('thrift.version')
Alex Volanis7004a612018-01-24 10:30:13 -050056} else {
James E. King III98f379e2019-01-22 09:22:04 -050057 version = property('thrift.version') + '-SNAPSHOT'
Alex Volanis7004a612018-01-24 10:30:13 -050058}
59
60// Keeping the rest of the build logic in functional named scripts for clarity
61apply from: 'gradle/environment.gradle'
62apply from: 'gradle/sourceConfiguration.gradle'
63apply from: 'gradle/additionalArtifacts.gradle'
64apply from: 'gradle/generateTestThrift.gradle'
65apply from: 'gradle/unitTests.gradle'
66apply from: 'gradle/cloverCoverage.gradle'
67apply from: 'gradle/functionalTests.gradle'
68apply from: 'gradle/publishing.gradle'
69apply from: 'gradle/codeQualityChecks.gradle'