Migrate to Gradle (#1159)

* Start gradle root

* Clean up test API ambiguities

These don't compile in gradle anymore and the team[] warns

* Exclude .gradle dirs in git

* Set up moshi module

* Set up moshi-adapters

* Add repositories to subprojects

* Set target/source compatibility

* Set up examples

* Fix location of reflect/test dir

* Set up moshi-kotlin

* Set up code gen

* Opportunistic update code gen deps

* Fix up with code gen

* Set up kotlin tests

* Update snapshots

* Update travis build

* Configure checkstyle

* Cache gradle

* Finish fixing up checkstyle

* Now disable checkstyle until we can fix them all :|

* Update contributing

* Fix tests in codegen

* Remove unnecessary annotation

* Remove maven stuff!

* Suppress warning

* Remove jcenter

* Consolidate dependencies

* Revert "Clean up test API ambiguities"

This reverts commit 3ead69b844b5d7f66134b721e95581f5df1cccd6.

* Fix incap dep

* Opportunistically fix some small kotlinpoet deprecations

* Automatically apply the stdlib to all kotlin projects

* Opportunistic move to opt-in and remove unnecessary annotations

The kotlin maven plugin didn't handle these well in the IDE, gradle does

* Fix Type doc warning

* Fix okio version

* Fix dokka support

* Fix copypasta

* Use new snapshot

* Kotlin 1.4.0
This commit is contained in:
Zac Sweers
2020-08-27 16:50:28 -04:00
committed by GitHub
parent 24c0c49858
commit 4dd4a9d222
48 changed files with 899 additions and 1643 deletions

89
build.gradle.kts Normal file
View File

@@ -0,0 +1,89 @@
/*
* Copyright (C) 2020 Square, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
import com.vanniktech.maven.publish.MavenPublishPluginExtension
import org.gradle.jvm.tasks.Jar
buildscript {
dependencies {
classpath(kotlin("gradle-plugin", version = Dependencies.Kotlin.version))
}
}
plugins {
id("com.vanniktech.maven.publish") version "0.11.1" apply false
id("org.jetbrains.dokka") version "0.10.1" apply false
}
subprojects {
repositories {
mavenCentral()
@Suppress("UnstableApiUsage")
exclusiveContent {
forRepository {
maven {
name = "JCenter"
setUrl("https://jcenter.bintray.com/")
}
}
filter {
includeModule("org.jetbrains.dokka", "dokka-fatjar")
}
}
}
// apply(plugin = "checkstyle")
// configure<CheckstyleExtension> {
// toolVersion = "8.28"
// configFile = rootProject.file("checkstyle.xml")
// }
// tasks.withType<Checkstyle>().configureEach {
// exclude("**/Iso8601Utils.java")
// }
pluginManager.withPlugin("java-library") {
configure<JavaPluginExtension> {
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
}
}
// Configure publishing
pluginManager.withPlugin("com.vanniktech.maven.publish") {
configure<MavenPublishPluginExtension> {
useLegacyMode = false
nexus {
groupId = "com.squareup"
}
}
// Configure automatic-module-name, but only for published modules
@Suppress("UnstableApiUsage")
val automaticModuleName = providers.gradleProperty("AUTOMATIC_MODULE_NAME")
.forUseAtConfigurationTime()
if (automaticModuleName.isPresent) {
val name = automaticModuleName.get()
tasks.withType<Jar>().configureEach {
manifest {
attributes("Automatic-Module-Name" to name)
}
}
}
}
pluginManager.withPlugin("org.jetbrains.kotlin.jvm") {
dependencies.add("api", Dependencies.Kotlin.stdlib)
}
}