Скрипт сборки Gradle Kotlin не может получить SpringBoot Lib - PullRequest
0 голосов
/ 21 июня 2019

Я пробовал несколько способов на моем скрипте сборки, но все еще не смог загрузить библиотеку Springboot в мою банку. Могу ли я узнать, что не так с моим скриптом, как показано ниже?

Parent Gradle Kotlin DSL

import io.spring.gradle.dependencymanagement.dsl.DependencyManagementExtension
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

extra["kotlin.version"] = "1.3.31"

plugins {
    java
    idea
    id("org.springframework.boot") version "2.1.4.RELEASE" apply false
    kotlin("jvm") version "1.3.31" apply false
    kotlin("plugin.spring") version "1.3.31" apply false
}

subprojects {
    apply(plugin = "org.jetbrains.kotlin.jvm")
    apply(plugin = "org.jetbrains.kotlin.plugin.spring")

    apply(plugin = "io.spring.dependency-management")

    the<DependencyManagementExtension>().apply {
        imports {
            mavenBom(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
        }
    }

    group = "com.company.market"
    version = System.getenv("VERSION") ?: "0.2-SNAPSHOT"

    java {
        sourceCompatibility = JavaVersion.VERSION_1_8
    }

    repositories {
        maven {
            credentials {
                username = "anonymous"
                password = "anonymous"
            }
            url = uri("http://repo1.maven.apache.org/maven2/")
        }
    }

    dependencies {
        implementation(kotlin("reflect"))
        implementation(kotlin("stdlib-jdk8"))
        testImplementation("org.springframework.boot:spring-boot-starter-test")
    }

    tasks.getByName<KotlinCompile>("compileKotlin") {
        kotlinOptions {
            freeCompilerArgs = listOf("-Xjsr305=strict")
            jvmTarget = "1.8"
        }
    }

    tasks.getByName<KotlinCompile>("compileTestKotlin") {
        kotlinOptions {
            freeCompilerArgs = listOf("-Xjsr305=strict")
            jvmTarget = "1.8"
        }
    }
}

Дочерний (API) Gradle Kotlin DSL

Вот дочерний модуль, который будет использоваться для развертывания

plugins {
    `java`
}

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-web")
    implementation("org.springframework.boot:spring-boot-starter-security")
    implementation("org.springframework.security.oauth:spring-security-oauth2:2.3.3.RELEASE")
    implementation("org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.1.4.RELEASE")
    implementation("org.springframework.boot:spring-boot-devtools")
    implementation("org.apache.commons:commons-dbcp2")
    implementation("org.mariadb.jdbc:mariadb-java-client")
    implementation("org.springframework.boot:spring-boot-loader:2.1.4.RELEASE")
    implementation(project(":app-expr"))
    implementation(project(":app-data"))
}

Я могуУспешно скомпилируйте модуль API, но размер jar невелик и вы поймете, что библиотека не была собрана внутри jar.

1 Ответ

0 голосов
/ 27 июня 2019

Я добавил библиотеку Springboot в мой субпроект и решил

plugins {
    `java`
    id("org.springframework.boot")
}

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-web")
    implementation("org.springframework.boot:spring-boot-starter-security")
    implementation("org.springframework.security.oauth:spring-security-oauth2:2.3.3.RELEASE")
    implementation("org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.1.4.RELEASE")
    implementation("org.springframework.boot:spring-boot-devtools")
    implementation("org.apache.commons:commons-dbcp2")
    implementation("org.mariadb.jdbc:mariadb-java-client")
    implementation("org.springframework.boot:spring-boot-loader:2.1.4.RELEASE")
    implementation(project(":expr"))
    implementation(project(":data"))
}
...