当我使用gretty启动我的spring启动项目时,我得到了NoClassDefFoundError,项目结构如下.ProjectA是一个简单的webapp项目,ProjectB和ProjectC是简单的java项目。
projectA:
@RestController
public class AController {
@RequestMapping(value = "/print",method = RequestMethod.GET)
public String print(){
new BClass().print();
return this.getClass().getName();
}
}
apply plugin: 'org.akhikhl.gretty'
gretty{
springBoot = true
port = 8080
contextPath = '/'
servletContainer = 'tomcat8'
managedClassReload = true
}
dependencies{
compile "org.springframework.boot:spring-boot-starter-web"
compile project(":projectB")
}
ProjectB:
public class BClass {
public void print(){
new CClass().print();
System.out.println(this.getClass().getName());
}
}
dependencies{
compile project(":projectC")
}
ProjectC:
public class CClass {
public void print(){
System.out.println(this.getClass().getName());
}
}
启动命令:
gradle :projectA:appRun
然后访问:http://localhost:8080/print 我得到了java.lang.NoClassDefFoundError:com / project / c / CClass 它似乎是ProjectA简明引用ProjectC的类,而gretty如何不将ProjectC包含在classpath中。 我该怎么做?谢谢
gretty插件:https://github.com/akhikhl/gretty
答案 0 :(得分:0)
我无法提供帮助,但我可以确认我遇到了同样的问题。我也像你一样使用Spring Boot,并想知道这是否是问题的一部分。