多模块 Gradle 项目 - 从 Spring-Boot 1.5 迁移到 2.1

2024-02-24

我想将多模块 spring-boot 1.5 项目迁移到 spring-boot 2.1。这是一个 gradle 项目(4.9),但不知何故我没有解决它。

使用 spring-boot 1.5.9,应用程序编译良好,依赖于其他模块的模块也可以解析类。

升级到 spring-boot 2.0 或 2.1 后,我无法让一个模块解析另一个模块的类。

在我的项目中,项目 api 依赖于库。同样,这个 build.gradle 对我来说在 Spring Boot 1.5.9 上工作得很好。我很高兴得到任何帮助。

buildscript {
    ext { springBootVersion = '1.5.9.RELEASE' }
    repositories {
        mavenLocal()
        mavenCentral()
    }
    dependencies {
        classpath "o.s.b:spring-boot-gradle-plugin:${springBootVersion}"
    }
}

allprojects {
    apply plugin: 'eclipse'
    apply plugin: 'maven'
    apply plugin: 'maven-publish'

    group = 'n.h.f.calculator'
    version = "0.1.0-SNAPSHOT"

}

subprojects {
    apply plugin: 'groovy'
    apply plugin: 'org.springframework.boot'
    apply plugin: 'io.spring.dependency-management'

    sourceCompatibility = JavaVersion.VERSION_1_8

    repositories {
        mavenLocal()
        mavenCentral()
    }

    dependencies {
        compile       'o.c.groovy:groovy'
        testCompile   'o.s.b:spring-boot-starter-test'
    }
}

project(':' + rootProject.name + '-library') {
    dependencies {
        compile 'org.springframework.boot:spring-boot-starter'
    }
}

project(':' + rootProject.name + '-api') {
    dependencies {
        compile project (':' + rootProject.name + '-library')
        compile         'o.s.b:spring-boot-starter-web'
    }
}

然后我就成为模块的编译器问题*-api,这表示模块的类*-lib无法解决。

Example

C:\Development\Projects\Immosoft\financial-calculator\api\src\main\groovy\net\hemisoft\financial\calculator\api\BasicApi.groovy: 7: unable to resolve class net.hemisoft.financial.calculator.library.utils.BasicCalculator
@ line 7, column 1.
import net.hemisoft.financial.calculator.library.utils.BasicCalculator

我找到了解决方案。神奇的词是jar { enabled = true } and bootJar { enabled = false }。我将其放入包含应用程序的库(后端类)的项目中。

buildscript {
    ext {
        springBootVersion = '2.1.2.RELEASE'
    }
    repositories {
        mavenLocal()
        mavenCentral()
    }
    dependencies {
        classpath "o.s.boot:spring-boot-gradle-plugin:${springBootVersion}"
    }
}

...

project(':' + rootProject.name + '-library') {
    dependencies {
        compile 'o.s.boot:spring-boot-starter'
    }

    jar {
        enabled = true
    }

    bootJar {
        enabled = false
    }
}

当使用 gradle 构建该项目时,该项目现在可以编译。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多模块 Gradle 项目 - 从 Spring-Boot 1.5 迁移到 2.1 的相关文章

随机推荐

  • Ansible,角色未找到错误

    我尝试对本地主机播放以下剧本来配置 Vagrant 机器 hosts all become yes roles base jenkins 我已经从 github 克隆了必要的角色 它们位于相对路径中roles role name 执行以下命
  • 设置 CLion 构建和二进制目录

    我正在尝试在 CLion 的项目中构建 libwebsockets 在构建期间 libwebsockets 创建其他文件所需的头文件并将其放入 PROJECT BINARY DIR 中 CLion 在为项目创建的随机构建目录中构建所有内容
  • Google MarkerClusterer:对低于特定缩放级别的标记进行分簇?

    我正在使用 Google MarkerClusterer 每当地图缩放级别超过 15 时 我想对所有标记进行分簇 有一个maxZoom在配置选项中设置 但是文档没有明确说明它应该做什么 http google maps utility li
  • 如何在应用程序类中获取屏幕显示指标

    如果我把它放在某个活动类中 它会完美地工作 但是 当我将它放在我的应用程序类中时 该方法getWindowManager 找不到 有什么方法可以在应用程序类中获取 WindowManager 吗 我的应用程序类定义如下 public cla
  • JavaScript 游戏框架

    如今与
  • Heroku docker spring boot 镜像错误 503 H14

    几天前 我尝试将 Spring Boot 应用程序的 docker 镜像部署到 heroku 中 我有以下泊坞窗文件 FROM openjdk 8 jdk alpine LABEL maintainer email protected cd
  • java循环重复程序

    我对 Java 非常陌生 我已经在上课的第二周左右了 我需要我的程序根据用户继续运行或退出 这是一个工资计算 我希望最后说 你想继续吗 y n 我希望 Y 重复我的整个问题程序和不结束程序 我正在使用 Jgrasp 而且我是非常非常新的 我
  • 如何在 FiraCode for Visual Studio 2015 中启用连字

    我下载了 FiraCode 字体 并选择它作为 Visual Studio 中的字体 然而 连字没有显示 并且 wiki 没有针对 Visual Studio 的任何特殊说明 尽管他们暗示它可以工作 因为它列在其 WORKS 列中以提供编辑
  • MySQL仅当查询包装为子查询时出现重复列错误

    我有一个如下所示的选择查询 SELECT FROM A LEFT JOIN B ON B x A y LEFT JOIN C WHERE GROUP BY ORDER BY 所有桌子都有id列和查询运行良好 结果有很多id列没有错误并且驱动
  • ASP.NET [GridView 的水平滚动]

    如何为我的大 GridView 制作水平滚动 尝试包裹一个 div style width 100 div 围绕 GridView
  • 创建独立的 .exe 文件

    我有一个在 Visual Studio 2010 中构建的控制台应用程序 当我实际构建项目时 我在 bin Debug MyProj exe 下获取 exe 文件 当我从其他位置粘贴并运行此 exe 时 它 也需要其他文件 有什么想法我怎样
  • 电子邮件客户端如何处理 cookie?

    假设我在电子邮件中的图像请求上设置了 cookie 因此当用户查看电子邮件中的图像时会设置 cookie 如果用户随后点击电子邮件打开浏览器 浏览器是否可以访问我刚刚设置的 cookie 显然 如果用户将 Outlook 作为电子邮件客户端
  • 可移植类库中的 Thread.Sleep()

    The MSDN文档说Thread Sleep 可以用在portable类库 编译器另有说明 除了自旋循环之外 我还有什么选择 Thread CurrentThread Join 也不存在 项目文件
  • Ajax跨源请求被阻止:同源策略不允许读取远程资源

    我正在编写一个简单的网站 它以习语作为输入 并从牛津词典返回其含义和示例 这是我的想法 我向以下 URL 发送请求 http www oxfordlearnersdictionaries com search english direct
  • 组织项目中文件的最佳方式

    组织项目中文件的最佳方式是什么 例如 您是否将所有用户控件放在单独的文件夹中 还是将它们放在子文件夹中 你有业务逻辑文件夹吗 助手类文件夹 我曾经这样组织我的项目 项目 用户控件 模块名称 项目 课程 模块名称 现在我正在学习更多这样的事情
  • Kohana 3 自动加载模型

    我正在尝试使用模型 但出现致命错误 因此我认为它无法正确自动加载 ErrorException 致命错误 类 未找到 属性 模型 有问题的控制器线路 properties new Properties Model 该模型 class Pro
  • 验证 JIRA 时发生卷曲错误

    curl H Content Type application json charset UTF 8 d username admin password admin http localhost 2990 jira rest auth 1
  • 将 JavaScript 字符串拆分为代码点数组? (考虑“代理对”但不考虑“字素簇”)

    将 JavaScript 字符串拆分为 字符 可以轻松完成 但如果您关心 Unicode 并且您应该关心 Unicode 则会出现问题 JavaScript 本身将字符视为 16 位实体 UCS 2 或 UTF 16 https en wi
  • 指定 JavaScript 正则表达式中的模式重复次数

    我在中使用了正则表达式C 有一种方法可以指定任何模式的重复次数 0 9a zA Z 3 15 上面的正则表达式将检查该模式 0 9a zA Z 将重复 3 至 15 次 当我尝试做同样的事情时JavaScript 这是行不通的 var re
  • 多模块 Gradle 项目 - 从 Spring-Boot 1.5 迁移到 2.1

    我想将多模块 spring boot 1 5 项目迁移到 spring boot 2 1 这是一个 gradle 项目 4 9 但不知何故我没有解决它 使用 spring boot 1 5 9 应用程序编译良好 依赖于其他模块的模块也可以解