Spring Boot创建自己的初学者

时间:2016-12-19 07:47:16

标签: maven spring-boot import

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

如果我使用与编写器1.3.3.RELEASE相同的spring-boot版本,它可以正常工作。但它不适用于当前版本的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找不到符号:class 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

1 个答案:

答案 0 :(得分:3)

JournalRepository必须保留模块而不是完整的Spring Boot应用程序的模块。看一下源代码,显然不是这样,所以我要联系Felipe,看看是否可以改变。

在1.4中(正如您自己发现的那样),包装已经改变为强制执行:不是将类放在通常位置以用于“简单的罐子”,而是将它们放在一个单独的位置以使事情保持一致(您也不会使用战争作为图书馆的依赖。)

maven插件的更新文档解释了how you can use a classifier so that the main artifact remains a simple library