spring-boot-migrator
spring-boot-migrator copied to clipboard
Project version defined as ${revision} cannot be resolved via maven.config
Since maven 3.5.0 it is possible to use ${revision} variable as project version. One way to resolve this ${revision} is specify it in maven.config file: maven.config: -Drevision=2.28.0-SNAPSHOT
This way is not supported by SBM and following exception is thrown by run recipe:
Applying recipe 'boot-2.7-3.0-dependency-version-update'
Add Spring Boot milestone repository.15:40:50.136 [main] ERROR o.s.s.o.RewriteExecutionContext - Exception occured!
java.lang.IllegalArgumentException: Illegal character in path at index 69: file:/Users/ashakirin/.m2/repository/app/coronawarn/server/services/${revision}/services-${revision}.pom
at java.base/java.net.URI.create(URI.java:906)
at org.openrewrite.maven.internal.MavenPomDownloader.download(MavenPomDownloader.java:242)
at org.openrewrite.maven.tree.ResolvedPom$Resolver.resolveParentPropertiesAndRepositoriesRecursively(ResolvedPom.java:351)
at org.openrewrite.maven.tree.ResolvedPom$Resolver.resolveParentsRecursively(ResolvedPom.java:308)
at org.openrewrite.maven.tree.ResolvedPom$Resolver.resolve(ResolvedPom.java:297)
at org.openrewrite.maven.tree.ResolvedPom.resolve(ResolvedPom.java:142)
at org.openrewrite.maven.tree.Pom.resolve(Pom.java:92)
at org.openrewrite.maven.MavenParser.parseInputs(MavenParser.java:113)
at org.springframework.sbm.build.impl.OpenRewriteMavenBuildFile$RefreshPomModel.visit(OpenRewriteMavenBuildFile.java:102)
at org.openrewrite.RecipeScheduler.scheduleVisit(RecipeScheduler.java:283)
at org.openrewrite.RecipeScheduler.scheduleVisit(RecipeScheduler.java:345)
at org.openrewrite.RecipeScheduler.scheduleRun(RecipeScheduler.java:88)
at org.openrewrite.Recipe.run(Recipe.java:286)
at org.openrewrite.Recipe.run(Recipe.java:278)
at org.openrewrite.Recipe.run(Recipe.java:274)
at org.springframework.sbm.build.impl.OpenRewriteMavenBuildFile.apply(OpenRewriteMavenBuildFile.java:148)
at org.springframework.sbm.build.impl.OpenRewriteMavenBuildFile.addRepository(OpenRewriteMavenBuildFile.java:742)
at org.springframework.sbm.build.migration.actions.AddRepositoryAction.addRepository(AddRepositoryAction.java:30)
at org.springframework.sbm.build.migration.actions.AddGenericRepositoryAction.apply(AddGenericRepositoryAction.java:74)
at org.springframework.sbm.engine.recipe.AbstractAction.applyInternal(AbstractAction.java:58)
at org.springframework.sbm.engine.recipe.Action.applyWithStatusEvent(Action.java:37)
at org.springframework.sbm.engine.recipe.Recipe.apply(Recipe.java:101)
at org.springframework.sbm.engine.commands.ApplyCommand.execute(ApplyCommand.java:61)
at org.springframework.sbm.shell.ApplyShellCommand.apply(ApplyShellCommand.java:61)
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.shell.command.invocation.InvocableShellMethod.doInvoke(InvocableShellMethod.java:306)
at org.springframework.shell.command.invocation.InvocableShellMethod.invoke(InvocableShellMethod.java:232)
at org.springframework.shell.command.CommandExecution$DefaultCommandExecution.evaluate(CommandExecution.java:158)
at org.springframework.shell.Shell.evaluate(Shell.java:208)
at org.springframework.shell.Shell.run(Shell.java:140)
at org.springframework.shell.jline.InteractiveShellRunner.run(InteractiveShellRunner.java:73)
at org.springframework.shell.DefaultShellApplicationRunner.run(DefaultShellApplicationRunner.java:65)
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:762)
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.SpringShellApplication.main(SpringShellApplication.java:27)
Caused by: java.net.URISyntaxException: Illegal character in path at index 69: file:/Users/ashakirin/.m2/repository/app/coronawarn/server/services/${revision}/services-${revision}.pom
at java.base/java.net.URI$Parser.fail(URI.java:2974)
at java.base/java.net.URI$Parser.checkChars(URI.java:3145)
at java.base/java.net.URI$Parser.parseHierarchical(URI.java:3227)
at java.base/java.net.URI$Parser.parse(URI.java:3175)
at java.base/java.net.URI.<init>(URI.java:623)
at java.base/java.net.URI.create(URI.java:904)```
Test project is https://github.com/corona-warn-app/cwa-server