当前位置: 首页 > 知识库问答 >
问题:

无法使用gradle将spring boot胖jar安装到maven存储库

茅秦斩
2023-03-14

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

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

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

  1. "bootRepackage"建立那个胖罐子文件
  2. 安装依赖于jar阶段,因此它构建了一个覆盖胖jar文件的瘦jar
  3. 将瘦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'
}
}

模块的渐变脚本:

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'
}

共有1个答案

端木安国
2023-03-14

您需要确保bootRepackage任务在install之前运行。一种简单的方法是在命令行上同时指定:

./gradlew bootRepackage install

更好的方法是将install任务配置为依赖于bootRepackage任务。您可以通过将以下内容添加到构建中来实现。格雷德尔

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
 类似资料:
  • 我是Gradle、nexus和Maven的新手,并尝试使用Gradle'publish'任务将Maven工件从Jenkins发布到一个新的nexus存储库。Jenkins作业在发布时失败,出现以下错误。我已经在作业中为Nexus提供了用户名和密码。 在第一次发布之前,我们需要在nexus maven存储库中创建文件夹结构吗?并添加maven-metadata.xml?如何生成*.pom.sha和*

  • 关于如何将胖JAR发布到JitPack并不是很直观,因为影子文档没有JitPack的部分,JitPack文档也没有关于胖JAR的部分。 所有文档都说,如果您包括,那么他们将执行任务。 通常通过创建shadowJar fat jar,但是JitPack上的build命令是不可配置的,因此我们必须修改以使用shadowJar。

  • 问题内容: 我到处都是Stackoverflow和Google,但我无法解决我的问题。 我的目标 :我想设置Jenkins以使用git SCM通过gerrit克隆存储库主机 我的詹金斯配置 在Windows上作为服务运行的Jenkins版本2.7.1 Git插件版本2.5.3 多个SCM插件版本0.6 Gerrit触发器插件版本2.21.1 问题 该 URL 配置为。是在Windows服务器上启动

  • 问题内容: 我正在开发两个相关的项目。其中一个是“助手”,另一个是“主”。我不断地更新“主要”,但是我有时也会更新“助手”。之后,我在gradle的maven插件中运行目标,并在本地maven存储库中获取jar。之后,我在“主要”项目中进行了gradle更新,并链接了更新的jar。 有两个问题。 1)如果仍然使用maven插件,那么如何将源代码也发布到本地Maven存储库中呢? 2)我可以在没有m

  • 我一直在使用maven汇编插件创建uber jar并部署到ArtiFactory。我切换到maven shaded插件来遮蔽一些依赖项。现在我的jar在安装阶段没有部署。 对于文档中的maven程序集插件

  • 我正在开发两个相关项目。其中一个是“帮手”一个,另一个是“主”一个。我在不断地更新“主”,但时不时也在更新“帮手”一个。然后,我在Gradle的maven插件中运行goal,并在本地maven repo中获取JAR。之后,我在“main”项目中进行分级更新,并将更新的jar链接起来。 有两个问题。 1)如果继续使用maven插件,那么如何将源代码发布到本地maven repo中? 2)如果没有ma