gretty を使用してスプリング ブート プロジェクトを開始すると、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 のクラスを簡潔に参照しているように見えますが、ProjectC をクラスパスに含めないでください。どうすればこれを行うことができますか?ありがとう
gretty プラグイン: https://github.com/akhikhl/gretty