微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Spring Boot多模块Gradle构建 – 多个“Fat Jars”

我们的spring-boot项目如下所示

project
|__ build.gradle
|__ settings.gradle
   |__ module_a
   |__ module_b
   |__ ...
|__ module_a
|__ module_b

module_a仅包含SpringApplication类和文件application.properties

运行./gradlew build工作正常,但问题是,对于每个模块(大约10)gradle生成一个包含所有依赖项的胖jar.

我们想只有一个远罐(在模块a中)

buildscript {
    ext {
        springBootVersion = '1.2.0.RELEASE'
        springLoadedVersion = '1.2.0.RELEASE'
    }
    repositories {
        // NOTE: You should declare only repositories that you need here
        mavenCentral()
        maven { url "http://repo.spring.io/release" }
        maven { url "http://repo.spring.io/milestone" }
        maven { url "http://repo.spring.io/snapshot" }
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        classpath("org.springframework:springloaded:${springLoadedVersion}")
    }
}


allprojects {

    group = "example.group"
    version = "0.0.1"

    repositories() {
        mavenCentral()
    }

}


subprojects {

    apply plugin: "groovy"
    apply plugin: "eclipse"

    eclipse {
        classpath {
            containers.remove("org.eclipse.jdt.launching.JRE_CONTAINER")
            containers "org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"
        }
    }

    apply plugin: "idea"
    apply plugin: "java"
    apply plugin: "spring-boot"

    mainClassName = "MainClassName"

    sourceCompatibility = 1.8
    targetCompatibility = 1.8

    dependencies {
    }
}

task wrapper(type: Wrapper) { gradLeversion = '2.2' }

我们尝试添加选项
    jar.enabled = false
    bootRepackage.enabled = false

在子项目部分,但在那之后,该项目不再漫画.

解决方法:

您可以将它仅应用于module_a,而不是将Spring Boot插件应用于每个子项目:

project(':module_a') {
    apply plugin: 'org.springframework.boot'
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐