spring-projects-experimental / spring-boot-migrator

Spring Boot Migrator (SBM) is a tool for automated code migrations to upgrade or migrate to Spring Boot
Apache License 2.0
439 stars 88 forks source link

Cannot generate report: RootBuildFileNotFoundException: Could not find BuildFile for root module. #898

Closed roma2341 closed 11 months ago

roma2341 commented 1 year ago

Describe the bug I'm trying to run this command: java -jar --add-opens java.base/sun.nio.ch=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED spring-boot-upgrade.jar C:\Users\zigzag\Documents\experiorcrmserver\crm\crm-services SBM Version [v0.15.0]

SBM Application executable jar To Reproduce Steps to reproduce the behavior:

  1. Execute spring-boot-upgrade.jar for project

Expected behavior Program generates report

Stacktrace 20:43:50.635 [main] ERROR o.s.boot.SpringApplication - Application run failed java.lang.IllegalStateException: Failed to execute ApplicationRunner at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:765) at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:752) at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) at org.springframework.sbm.SpringBootUpgradeReportApp.main(SpringBootUpgradeReportApp.java:31) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) at org.springframework.boot.loader.Launcher.launch(Launcher.java:108) at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65) Caused by: org.springframework.sbm.engine.recipe.ActionFailedException: Action [SpringBootUpgradeReportAction] 'Creates a Upgrade report for Spring Boot 3.' failed: Could not find BuildFile for root module. at org.springframework.sbm.engine.recipe.Action.applyWithStatusEvent(Action.java:43) at org.springframework.sbm.engine.recipe.Recipe.apply(Recipe.java:101) at org.springframework.sbm.engine.commands.ApplyCommand.execute(ApplyCommand.java:69) at org.springframework.sbm.SpringBootMigratorRunner.run(SpringBootMigratorRunner.java:50) at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:762) ... 13 common frames omitted Caused by: org.springframework.sbm.build.api.RootBuildFileNotFoundException: Could not find BuildFile for root module. at org.springframework.sbm.build.api.RootBuildFileFilter.lambda$apply$2(RootBuildFileFilter.java:29) at java.base/java.util.Optional.orElseThrow(Optional.java:403) at org.springframework.sbm.build.api.RootBuildFileFilter.apply(RootBuildFileFilter.java:29) at org.springframework.sbm.build.api.RootBuildFileFilter.apply(RootBuildFileFilter.java:21) at org.springframework.sbm.engine.context.ProjectContext.search(ProjectContext.java:101) at org.springframework.sbm.engine.context.ProjectContext.getBuildFile(ProjectContext.java:97) at org.springframework.sbm.boot.upgrade_27_30.report.helper.JohnzonDependencyHelper.evaluate(JohnzonDependencyHelper.java:39) at org.springframework.sbm.boot.upgrade_27_30.report.SpringBootUpgradeReportSection.shouldRender(SpringBootUpgradeReportSection.java:99) at org.springframework.sbm.boot.upgrade_27_30.report.SpringBootUpgradeReportAction.lambda$apply$0(SpringBootUpgradeReportAction.java:124) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:178) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) at org.springframework.sbm.boot.upgrade_27_30.report.SpringBootUpgradeReportAction.apply(SpringBootUpgradeReportAction.java:125) at org.springframework.sbm.boot.upgrade_27_30.report.SpringBootUpgradeReportAction.applyInternal(SpringBootUpgradeReportAction.java:214) at org.springframework.sbm.engine.recipe.Action.applyWithStatusEvent(Action.java:37) ... 17 common frames omitted Failed to execute ApplicationRunner java.lang.IllegalStateException: Failed to execute ApplicationRunner at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:765) at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:752) at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) at org.springframework.sbm.SpringBootUpgradeReportApp.main(SpringBootUpgradeReportApp.java:31) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) at org.springframework.boot.loader.Launcher.launch(Launcher.java:108) at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65) Caused by: org.springframework.sbm.engine.recipe.ActionFailedException: Action [SpringBootUpgradeReportAction] 'Creates a Upgrade report for Spring Boot 3.' failed: Could not find BuildFile for root module. at org.springframework.sbm.engine.recipe.Action.applyWithStatusEvent(Action.java:43) at org.springframework.sbm.engine.recipe.Recipe.apply(Recipe.java:101) at org.springframework.sbm.engine.commands.ApplyCommand.execute(ApplyCommand.java:69) at org.springframework.sbm.SpringBootMigratorRunner.run(SpringBootMigratorRunner.java:50) at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:762) ... 13 more Caused by: org.springframework.sbm.build.api.RootBuildFileNotFoundException: Could not find BuildFile for root module. at org.springframework.sbm.build.api.RootBuildFileFilter.lambda$apply$2(RootBuildFileFilter.java:29) at java.base/java.util.Optional.orElseThrow(Optional.java:403) at org.springframework.sbm.build.api.RootBuildFileFilter.apply(RootBuildFileFilter.java:29) at org.springframework.sbm.build.api.RootBuildFileFilter.apply(RootBuildFileFilter.java:21) at org.springframework.sbm.engine.context.ProjectContext.search(ProjectContext.java:101) at org.springframework.sbm.engine.context.ProjectContext.getBuildFile(ProjectContext.java:97) at org.springframework.sbm.boot.upgrade_27_30.report.helper.JohnzonDependencyHelper.evaluate(JohnzonDependencyHelper.java:39) at org.springframework.sbm.boot.upgrade_27_30.report.SpringBootUpgradeReportSection.shouldRender(SpringBootUpgradeReportSection.java:99) at org.springframework.sbm.boot.upgrade_27_30.report.SpringBootUpgradeReportAction.lambda$apply$0(SpringBootUpgradeReportAction.java:124) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:178) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) at org.springframework.sbm.boot.upgrade_27_30.report.SpringBootUpgradeReportAction.apply(SpringBootUpgradeReportAction.java:125) at org.springframework.sbm.boot.upgrade_27_30.report.SpringBootUpgradeReportAction.applyInternal(SpringBootUpgradeReportAction.java:214) at org.springframework.sbm.engine.recipe.Action.applyWithStatusEvent(Action.java:37) ... 17 more

Desktop (please complete the following information):

roma2341 commented 1 year ago

image projectResourceSet is empty

roma2341 commented 1 year ago

But my directory is not empty image

roma2341 commented 1 year ago

I think that it reads C:\ instead of C:\Users\zigzag\Documents\experiorcrmserver\crm\crm-services

roma2341 commented 1 year ago

I think that problem is here, image LinuxWindowsPathUnifier removed disk from path C:\Users\zigzag\Documents\experiorcrmserver Becomes /Users/zigzag/Documents/experiorcrmserver/** No matter what the disk it removes it

roma2341 commented 1 year ago

If i fix this moment it still doesn't work resolving poms because it doesn't convert replace \ with / here /C:/Users/zigzag/.m2/repository/org/springframework/boot/spring-boot-starter-parent/2.7.15/spring-boot-starter-parent-2.7.15.pom Stacktrace: java.lang.IllegalStateException: Failed to execute ApplicationRunner at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:765) at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:752) at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) at org.springframework.sbm.SpringBootUpgradeReportApp.main(SpringBootUpgradeReportApp.java:31) Caused by: java.lang.IllegalArgumentException: Illegal character in authority at index 7: file://C:\Users\zigzag\.m2\repository/org/springframework/boot/spring-boot-starter-parent/2.7.15/spring-boot-starter-parent-2.7.15.pom at java.base/java.net.URI.create(URI.java:906) at org.openrewrite.maven.internal.MavenPomDownloader.download(MavenPomDownloader.java:487) at org.openrewrite.maven.tree.ResolvedPom$Resolver.resolveParentPropertiesAndRepositoriesRecursively(ResolvedPom.java:353) at org.openrewrite.maven.tree.ResolvedPom$Resolver.resolveParentPropertiesAndRepositoriesRecursively(ResolvedPom.java:364) at org.openrewrite.maven.tree.ResolvedPom$Resolver.resolveParentPropertiesAndRepositoriesRecursively(ResolvedPom.java:364) at org.openrewrite.maven.tree.ResolvedPom$Resolver.resolveParentsRecursively(ResolvedPom.java:310) at org.openrewrite.maven.tree.ResolvedPom$Resolver.resolve(ResolvedPom.java:299) at org.openrewrite.maven.tree.ResolvedPom.resolve(ResolvedPom.java:144) at org.openrewrite.maven.tree.Pom.resolve(Pom.java:104) at org.openrewrite.maven.MavenParser.parseInputs(MavenParser.java:122) at org.springframework.sbm.build.impl.RewriteMavenParser.parseInputs(RewriteMavenParser.java:92) at org.springframework.sbm.project.parser.MavenProjectParser.parse(MavenProjectParser.java:95) at org.springframework.sbm.project.parser.ProjectContextInitializer.initProjectContext(ProjectContextInitializer.java:52) at org.springframework.sbm.engine.commands.ScanCommand.execute(ScanCommand.java:70) at org.springframework.sbm.SpringBootMigratorRunner.run(SpringBootMigratorRunner.java:48) at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:762) ... 5 more Caused by: java.net.URISyntaxException: Illegal character in authority at index 7: file://C:\Users\zigzag\.m2\repository/org/springframework/boot/spring-boot-starter-parent/2.7.15/spring-boot-starter-parent-2.7.15.pom at java.base/java.net.URI$Parser.fail(URI.java:2976) at java.base/java.net.URI$Parser.parseAuthority(URI.java:3310) at java.base/java.net.URI$Parser.parseHierarchical(URI.java:3221) at java.base/java.net.URI$Parser.parse(URI.java:3177) at java.base/java.net.URI.<init>(URI.java:623) at java.base/java.net.URI.create(URI.java:904) ... 20 more

Because MavenProjectParser has method getPath

image And here it creates Parser.Input without replacing windows path with linux: image

fabapp2 commented 11 months ago

Hi @roma2341 thanks for reporting and investigating 🚀 Sorry for not responding sooner.

If i fix this moment it still doesn't work resolving poms

How did you fix this issue?

it still doesn't work resolving poms

This should be fixed with #942 now. I'll close this issue for now. Please reopen if the issue persists.