SpringBoot2.3.0拥抱Gradle,你会多模块打包(module)成一个jar包吗?

一、使用gradle将多个module打包成一个可执行的jar包,解决多模块打成jar包没有主启动清单的错误

二、解决jar包使用java -jar xxxxx.jar启动时没有主清单属性错误

1、项目结构

SpringBoot2.3.0拥抱Gradle,你会多模块打包(module)成一个jar包吗?_第1张图片

2、父工程gradle配置
allprojects{
    apply plugin:'java'
    group = 'com.example'
    version = '0.0.1-SNAPSHOT'
    sourceCompatibility = '1.8'

    repositories {
        maven{
            url 'https://maven.aliyun.com/repository/public'
        }
        mavenCentral();
    }

    dependencies {
        implementation 'org.springframework.boot:spring-boot-starter-web:2.1.8.RELEASE'
    }

    test {
        useJUnitPlatform()
    }
}

2、service模块引入dao模块
dependencies{
    implementation project(":gradle-dao")
}
3、client模块引入service模块并加入spring-boot-gradle-plugin 将启动类设置成client模块

SpringBoot2.3.0拥抱Gradle,你会多模块打包(module)成一个jar包吗?_第2张图片
client模块中的build.gradle配置

buildscript {
    ext {
        springBootVersion = '2.1.8.RELEASE'
    }
    repositories {
        maven {
            url 'https://maven.aliyun.com/repository/public'
        }
        mavenCentral();
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }

}

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'

dependencies {
    implementation project(":gradle-service")
}

因为现在阿里云仓库中还没有2.3.1的springboot版本,所以我使用的springboot版本是2
1.8

4、点击build会将项目打包成jar包放在build下的libs文件夹中,进入cmd中,使用 java -jar xxxxxx.jar 启动项目

SpringBoot2.3.0拥抱Gradle,你会多模块打包(module)成一个jar包吗?_第3张图片
SpringBoot2.3.0拥抱Gradle,你会多模块打包(module)成一个jar包吗?_第4张图片
项目启动成功
SpringBoot2.3.0拥抱Gradle,你会多模块打包(module)成一个jar包吗?_第5张图片

示例代码下载地址:https://download.csdn.net/download/qq_43813937/12538263

你可能感兴趣的:(java,spring,boot,jar,gradle,maven)