我刚开始使用Spring Boot并且在运行spring boot应用程序时遇到问题。所以情景是 - 我有两个项目
一个叫做父项目SpringBoot和
其他名为web-app的项目是maven模块,它在Parent项目中添加为模块。
在两个项目(父项和子项)中,我有应用程序类加载上下文,但不知何故,当我启动应用程序时,它给了我一些例外,如项目SpringBoot:无法找到合适的主类,请添加一个mainClass属性
最重要的是,当我单独运行web-app然后它可以工作但是当我通过Parent Project SpringBoot运行它时会抛出异常
这是我的Spring Boot Project(父项目)的代码结构
Application.java
@组态
@ComponentScan
@EnableAutoConfiguration
@SpringBootApplication
公共类申请{
public static void main(String [] args){
SpringApplication.run(Application.class,args);
}
}
Example.java
@RequestMapping(" / API / **&#34)
@RestController
public class Example {@RequestMapping(method = RequestMethod.GET,produce = {MediaType.APPLICATION_JSON_VALUE})
public String index(){
返回" Hello World&#34 ;;
}
}
的pom.xml
<?xml version =" 1.0"编码=" UTF-8">
< project xmlns =" http://maven.apache.org/POM/4.0.0"的xmlns:=的xsi" HTTP://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation =" http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
< modelVersion> 4.0.0< / modelVersion>
<&的groupId GT; com。示例< /&的groupId GT;
< artifactId的> SpringBoot< / artifactId的>
<版本> 1.0-快照LT; /版本>
<包装和GT; POM< /包装>
&LT亲本GT;
<&的groupId GT; org.springframework.boot< /&的groupId GT;
< artifactId的>弹簧引导起动 - 亲本LT; / artifactId的>
<版本> 1.2.1.RELEASE< /版本>
< /亲本GT;
<! - 此处要添加的其他行... - >
<模块>
<模块> web应用程序< /模块>
< /模块
<依赖性>
<依赖性>
<&的groupId GT; org.springframework.boot< /&的groupId GT;
< artifactId的>弹簧引导起动的Web< / artifactId的>
< /依赖性>
< /依赖性>
<依赖性>
<&的groupId GT; org.springframework.boot< /&的groupId GT;
< artifactId的>弹簧引导起动的Web< / artifactId的>
< /依赖性>
<依赖性>
<&的groupId GT; org.springframework.boot< /&的groupId GT;
< artifactId的>弹簧引导起动电子邮件与LT; / artifactId的>
< /依赖性>
<依赖性>
<&的groupId GT; org.springframework.boot< /&的groupId GT;
< artifactId的>弹簧引导起动< / artifactId的>
<排除>
<排阻>
<&的groupId GT; org.springframework.boot< /&的groupId GT;
< artifactId的>弹簧引导起动测井< / artifactId的>
< /排除>
< /排除>
< /依赖性>
<依赖性>
<&的groupId GT; org.springframework.boot< /&的groupId GT;
< artifactId的>弹簧引导起动的log4j< / artifactId的>
< /依赖性>
<依赖性>
<&的groupId GT; org.springframework.boot< /&的groupId GT;
< artifactId的>弹簧引导起动数据JPA< / artifactId的>
< /依赖性>
第二个项目是web-app:
ApplicationWebApp.Java
@组态
@ComponentScan
@EnableAutoConfiguration
@SpringBootApplication
ApplicationWebApp
公共类ApplicationWebApp {
public static void main(String [] args){
SpringApplication.run(ApplicationWebApp.class,args);
}
}
Example.java
@RequestMapping(" / API的/ **&#34)
@RestController
public class Example {@RequestMapping(method = RequestMethod.GET,produce = {MediaType.APPLICATION_JSON_VALUE})
public String index(){
返回" Hello World&#34 ;;
}
}
的pom.xml
< modelVersion> 4.0.0< / modelVersion>
&LT亲本GT;
<&的groupId GT; com。示例< /&的groupId GT;
< artifactId的> SpringBoot< / artifactId的>
<版本> 1.0-快照LT; /版本>
< /亲本GT;
< artifactId的> web应用程序< / artifactId的>
< /项目>
我通过添加在stackoverflow和不同论坛上找到了几个解决方案
<性状>
通过执行java -jar开始的主类
< startclass> com.dashboard.backend.controllers.Application< / startclass>
< /性状>
通过这种方式,我需要在每个pom.xml中的每个n中添加这个正确的文件来加载它。由于这是一个基于Web的应用程序,所以我不确定它是否是一个很好的解决方案..
如果有人为此问题尝试了任何解决方案,请分享您的发现