[英]Custom dependencies are not identified in Spring-Boot
我有两个 spring-boot 项目
我为 greeter-library 创建了 jar 文件并将其安装在我的本地 m2(maven) 存储库中。 Now I am using that jar as a maven dependency in greeter-spring-boot-autoconfigure.But it is stating Class not found on Greeter.java.
pom.xml 用于欢迎程序库
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<artifactId>greeter-library</artifactId>
<groupId>com.xyz.greeter</groupId>
<version>0.0.1-SNAPSHOT</version>
<name>greeter-library</name>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
现在 pom.xml 的 greeter-spring-boot-autoconfigure 如下
<artifactId>greeter-spring-boot-autoconfigure</artifactId>
<name>greeter-spring-boot-autoconfigure</name>
<groupId>com.xyz</groupId>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.1</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<artifactId>greeter-library</artifactId>
<groupId>com.xyz.greeter</groupId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
但是在为 greeter-spring-boot-autoconfigure 构建 maven 期间,它表明 Greeter.java not found 这是 greeter-library 项目的一部分。
任何人都可以对此有任何解决方案吗?
由于您在“greeter-library”模块中添加了spring-boot-maven-plugin
,它将被打包为 spring 引导应用程序。 用 WinRar/WinZip 打开它,你会看到。 This is a little bit confusing, but in general spring boot application, although is packed as a JAR is not actually a jar in the sense that JVM can't load it, can't find its classes automatically, etc. For example, it在BOOT-INF/lib
文件夹中有它的依赖项——这不是常规 jars 的工作方式,事实上,spring 引导有一个引导代码,它使用自定义 ZA2F2ED4F8EBC2CBB4C21A29DC40AB6D 加载器从此类结构中读取类。
由于这一切,Maven 和 IDE 将无法识别来自greeter-library
的类,因此出现错误。 Bootom 行,你不能真正从你的 Greater greater-spring-boot-autoconfigure
模块声明对 spring 引导应用程序的依赖。
现在作为一个解决方案 - 为什么您需要一个greeter-library
作为 spring 引导工件? 也许如果您只是删除spring-boot-maven-plugin
并将其转换为常规 jar (可能定期依赖于 spring 引导基础设施)它会起作用吗?
如果这没有帮助,请随时在问题中分享更多细节,以获得更精确的问题解决方案......
一些需要探索的想法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.