我有一个父模块 (A) 作为依赖项已包含/导入到子模块 (B) 中。
模块 A。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>*some-version*<version>
</dependency>
<dependencies>
模块 B
<dependencies>
<dependency>
<groupId>com.xyz</groupId>
<artifactId>module-A</artifactId>
<version>*module-A-version*<version>
</dependency>
<dependencies>
问题:编译没有错误,并且成功创建了模块B(B.war)的战争工件。但是当我部署模块 B(即 B.war)时,它会因以下错误而失败。
线程“主”java.lang.NoClassDefFoundError 中的异常:org/springframework/beans/factory/config/YamlProcessor at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763)在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:467) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:73) 在 java.net .URLClassLoader$1.run(URLClassLoader.java:368) at java.net.URLClassLoader$1.run(URLClassLoader.java:362) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader .java:361) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在 org.springframework.boot.env.PropertySourcesLoader.load(PropertySourcesLoader.java:127) 在 org.springframework.boot.context.config 的 org.springframework.boot.env.YamlPropertySourceLoader.load(YamlPropertySourceLoader.java:57) .ConfigFileApplicationListener$Loader.loadIntoGroup(ConfigFileApplicationListener.java:462) at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:449) at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader .load(ConfigFileApplicationListener.java:374) 在 org.springframework.boot.context.config.ConfigFileApplicationListener.addPropertySources(ConfigFileApplicationListener.java:210) 在 org.springframework.boot.context.config.ConfigFileApplicationListener.postProcessEnvironment(ConfigFileApplicationListener.java:179 ) 在组织。springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEnvironmentPreparedEvent(ConfigFileApplicationListener.java:166) 在 org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEvent(ConfigFileApplicationListener.java:152) 在 org.springframework.context.event.SimpleApplicationEventMulticaster。 invokeListener(SimpleApplicationEventMulticaster.java:163) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:136) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:119) at org.springframework .boot.context.event.EventPublishingRunListener.publishEvent(EventPublishingRunListener.java:111) 在 org.springframework.boot.context.event.EventPublishingRunListener。environmentPrepared(EventPublishingRunListener.java:65) at org.springframework.boot.SpringApplication org.springframework.boot.SpringApplication.doRun(SpringApplication.java:325) .run(SpringApplication.java:305) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1124) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1113) 在 com.propspace.intl。 gateway.GatewayInternational.main(GatewayInternational.java:32) 引起:java.lang.ClassNotFoundException: org.springframework.beans.factory.config.YamlProcessor at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java。 lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 32 更多
是不是我们总是必须在叶子模块中包含spring-boot-starter- * 并且不能在一个共同的父级中定义它?