【问题标题】:Spring Boot Creating Own StarterSpring Boot 创建自己的启动器
【发布时间】:2016-12-19 07:47:16
【问题描述】:

我正在关注“Pro Spring Boot”一书中的“扩展 Spring Boot 应用程序”一章。在本章中,作者首先解释如何创建自己的 spring-boot-starter-。源代码可以在here找到。我对 maven 和 spring 都很陌生。

如果我使用与作者相同的 spring-boot 版本 1.3.3.RELEASE,它可以正常工作。但它不适用于当前版本的spring-boot,我想让它适用于当前版本。

基本文件夹结构:

**/journal/
|-- spring-boot-journal
|   |-- src
|   |-- pom.xml
|-- journal-spring-boot-autoconfigure
|   |-- src
|   |-- pom.xml
|-- journal-spring-boot-starter
|   |-- src
|   |-- pom.xml
|-- pom.xml

在使用 spring-boot 版本 1.4.2.RELEASE 而不是 1.3.3.RELEASE 时,执行“**/journal/mvn clean package -DskipTests=true”后,我得到的错误是:

**/journal-spring-boot-autoconfigure/src/**/JournalAutoConfiguration.java 找不到符号:类 JournalRepository

从子模块 spring-boot-journal 导入类不再起作用。 The spring-boot docs 不包括如何从 -spring-boot-autoconfigure 模块中的子模块导入。我将如何在当前版本的 spring-boot (1.4.2.RELEASE) 中执行/修复此问题?

我注意到可以解释错误的 jar 包装之间的差异:

1.4.2.RELEASE:BOOT-INF/classes/com/apress/spring/repository/JournalRepository.class

1.3.3.RELEASE:com/apress/spring/repository/JournalRepository.class

【问题讨论】:

    标签: maven spring-boot import


    【解决方案1】:

    JournalRepository 所在的模块必须是一个模块,而不是一个成熟的 Spring Boot 应用程序。查看源代码显然不是这样,所以我将联系 Felipe 看看是否可以更改。

    在 1.4 中(正如您自己发现的那样),包装已更改以强制执行此操作:我们现在将类放在“简单 jar”的通常位置,而不是将它们放在单独的位置以使事情保持一致(您也不会将战争用作库依赖项)。

    maven插件更新文档说明how you can use a classifier so that the main artifact remains a simple library

    【讨论】:

      猜你喜欢
      • 2020-08-04
      • 2019-08-30
      • 2021-06-07
      • 2017-01-31
      • 1970-01-01
      • 2021-08-13
      • 1970-01-01
      • 2021-03-22
      • 1970-01-01
      相关资源
      最近更新 更多