/*
 * SPDX-License-Identifier: Apache-2.0
 *
 * Copyright 2020-2021 The JReleaser authors.
 *
 * 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.
 */
buildscript {
    repositories {
        gradlePluginPortal()
        mavenCentral()
        mavenLocal()
    }
    dependencies {
        classpath "com.github.jengelman.gradle.plugins:shadow:$shadowPluginVersion"
        classpath "org.kordamp.gradle:java-project-gradle-plugin:$kordampPluginVersion"
        classpath "org.kordamp.gradle:groovy-project-gradle-plugin:$kordampPluginVersion"
        classpath "org.kordamp.gradle:plugin-gradle-plugin:$kordampPluginVersion"
        classpath "org.kordamp.gradle:kordamp-parentbuild:$kordampBuildVersion"
        classpath "org.jreleaser:jdks-gradle-plugin:$jdksPluginVersion"
        classpath 'de.undercouch:gradle-download-task:4.1.1'
        classpath "org.ow2.asm:asm:$asmVersion"
        classpath "org.ow2.asm:asm-commons:$asmVersion"
        classpath "org.ow2.asm:asm-analysis:$asmVersion"
        classpath "org.ow2.asm:asm-tree:$asmVersion"
    }
}
apply plugin: 'org.kordamp.gradle.kordamp-parentbuild'

rootProject.name = 'jreleaser'

projects {
    directories = ['apps', 'core', 'sdks', 'plugins']

    plugins {
        all {
            id 'idea'
        }
        path(':') {
            id 'org.kordamp.gradle.java-project'
        }
        dirs(['apps', 'core', 'sdks', 'plugins']) {
            id 'java-library'
        }
    }
}

enforce {
    mergeStrategy = 'append'

    rule(enforcer.rules.ForceDependencies) { r ->
        r.dependencies.addAll "org.apache.maven:maven-artifact:$mavenVersion",
            "org.apache.maven.shared:maven-shared-utils:$mavenSharedVersion",
            "org.codehaus.plexus:plexus-utils:$plexusVersion",
            "org.codehaus.plexus:plexus-component-annotations:1.7.1",
            "com.fasterxml.jackson.core:jackson-core:$jacksonVersion",
            "com.fasterxml.jackson.core:jackson-databind:$jacksonVersion",
            "com.fasterxml.jackson.core:jackson-annotations:$jacksonVersion",
            "com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:$jacksonVersion",
            "commons-codec:commons-codec:$commonsCodecVersion",
            "org.apache.commons:commons-compress:$commonsCompressVersion",
            "org.hamcrest:hamcrest-core:$hamcrestVersion",
            "org.slf4j:slf4j-api:$slf4jVersion",
            "org.apache.commons:commons-lang3:3.8.1",
            "commons-io:commons-io:$commonsIoVersion",
            "org.opentest4j:opentest4j:1.2.0",
            "jakarta.activation:jakarta.activation-api:1.2.2",
            "org.yaml:snakeyaml:$snakeYamlVersion",
            "info.picocli:picocli:$picocliVersion",
            "org.bouncycastle:bcpg-jdk15on:$bouncyCastleVersion",
            "org.bouncycastle:bcprov-jdk15on:$bouncyCastleVersion",
            "org.apache.maven:maven-core:$mavenVersion",
            "org.apache.maven:maven-plugin-api:$mavenVersion",
            "org.apache.maven:maven-model:$mavenVersion",
            "org.junit.jupiter:junit-jupiter-api:$junitVersion",
            "net.minidev:json-smart:$jsonSmartVersion",
            "org.ow2.asm:asm:$asmVersion",
            "junit:junit:4.13.2",
            "org.hamcrest:hamcrest:2.2",
            "org.apache.httpcomponents:httpclient:4.5.12"
    }
}
