mirror of
https://gitee.com/dcren/initializr.git
synced 2025-05-07 22:28:03 +08:00
Be more defensive when extracting filename from URI
Closes gh-827
This commit is contained in:
parent
719c368a66
commit
f33a661074
@ -17,6 +17,7 @@
|
|||||||
package io.spring.initializr.generator.project.contributor;
|
package io.spring.initializr.generator.project.contributor;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.net.URI;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
@ -55,8 +56,8 @@ public class MultipleResourcesProjectContributor implements ProjectContributor {
|
|||||||
Resource root = this.resolver.getResource(this.rootResource);
|
Resource root = this.resolver.getResource(this.rootResource);
|
||||||
Resource[] resources = this.resolver.getResources(this.rootResource + "/**");
|
Resource[] resources = this.resolver.getResources(this.rootResource + "/**");
|
||||||
for (Resource resource : resources) {
|
for (Resource resource : resources) {
|
||||||
String filename = resource.getURI().toString().substring(root.getURI().toString().length() + 1);
|
|
||||||
if (resource.isReadable()) {
|
if (resource.isReadable()) {
|
||||||
|
String filename = extractFileName(root.getURI(), resource.getURI());
|
||||||
Path output = projectRoot.resolve(filename);
|
Path output = projectRoot.resolve(filename);
|
||||||
Files.createDirectories(output.getParent());
|
Files.createDirectories(output.getParent());
|
||||||
Files.createFile(output);
|
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, '/');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user