diff --git a/initializr-generator/src/main/java/io/spring/initializr/generator/project/contributor/MultipleResourcesProjectContributor.java b/initializr-generator/src/main/java/io/spring/initializr/generator/project/contributor/MultipleResourcesProjectContributor.java index 9a0fd780..cb142c21 100644 --- a/initializr-generator/src/main/java/io/spring/initializr/generator/project/contributor/MultipleResourcesProjectContributor.java +++ b/initializr-generator/src/main/java/io/spring/initializr/generator/project/contributor/MultipleResourcesProjectContributor.java @@ -17,6 +17,7 @@ package io.spring.initializr.generator.project.contributor; import java.io.IOException; +import java.net.URI; import java.nio.file.Files; import java.nio.file.Path; import java.util.function.Predicate; @@ -55,8 +56,8 @@ public class MultipleResourcesProjectContributor implements ProjectContributor { Resource root = this.resolver.getResource(this.rootResource); Resource[] resources = this.resolver.getResources(this.rootResource + "/**"); for (Resource resource : resources) { - String filename = resource.getURI().toString().substring(root.getURI().toString().length() + 1); if (resource.isReadable()) { + String filename = extractFileName(root.getURI(), resource.getURI()); Path output = projectRoot.resolve(filename); Files.createDirectories(output.getParent()); Files.createFile(output); @@ -67,4 +68,9 @@ public class MultipleResourcesProjectContributor implements ProjectContributor { } } + private String extractFileName(URI root, URI resource) { + String candidate = resource.toString().substring(root.toString().length()); + return StringUtils.trimLeadingCharacter(candidate, '/'); + } + }