无法使用 gradle 将 spring-boot fat jar 安装到 Maven 存储库

Cannot install a spring-boot fat jar to a maven repository using gradle

我用 gradle 编写了一个 spring-boot 应用程序,它运行正常。

我使用 bootRepackage 构建了一个 fat jar,我添加了 maven 插件以便安装 jars。

问题是我无法将 fat jar 安装到 maven 存储库。

  1. "bootRepackage" 构建那个 fat jar 文件
  2. 安装依赖于 "jar" 阶段,因此它会构建一个覆盖胖 jar 文件的瘦 jar 文件
  3. thin jar 已复制到存储库

这是我的基础项目的 gradle 脚本,请注意,我仍在尝试安装到我的本地存储库(我们是一家新公司,我们仍在构建远程存储库)

subprojects {
group 'myGroup'
version '1.0-SNAPSHOT'

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'maven'

sourceCompatibility = 1.8

buildscript {
    repositories {
        jcenter()
    }

    dependencies {

        classpath 'io.spring.gradle:dependency-management-plugin:0.5.6.RELEASE'
        classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.3.3.RELEASE'
        classpath 'com.bmuschko:gradle-tomcat-plugin:2.0'

    }

}

repositories {
    jcenter()
}



dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.11'
    testCompile 'org.mockito:mockito-all:1.8.4'
    compile 'ch.qos.logback:logback-classic:1.1.7'
}



task wrapper(type: Wrapper) {
    gradleVersion = '2.12'
}
}

Gradle 模块脚本:

apply plugin: "io.spring.dependency-management"
apply plugin: "spring-boot"

repositories {
jcenter()
}

dependencyManagement {
imports {
    mavenBom 'io.spring.platform:platform-bom:2.0.3.RELEASE'
}
}
dependencies {
   compile "org.springframework:spring-web"
   compile "org.springframework.boot:spring-boot-starter-web"
   compile "org.springframework.boot:spring-boot-starter-actuator"
   compile 'com.netflix.feign:feign-okhttp:8.16.2'
}

您需要确保 bootRepackage 任务在 install 之前 运行。一种粗略的方法是在命令行上指定两者:

./gradlew bootRepackage install

更好的方法是将 install 任务配置为依赖于 bootRepackage 任务。您可以通过将以下内容添加到您的 build.gradle:

install {
    dependsOn bootRepackage
}

有了这个配置,Gradle 将在您 运行 install 时自动 运行 bootRepackage。例如:

$ ./gradlew install
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:findMainClass
:jar
:bootRepackage
:install

BUILD SUCCESSFUL

Total time: 5.487 secs