Use project location to infer the artifactId
On start.spring.io, if you customize the artifactId it creates a zip file with the same name. The `spring init` command did not have a similar shortcut. This commit updates the request to customize the artifactId if none is set and a custom location was specified. Just as we check for the presence of a dot to figure out if we have to extract the archive or not, we check for it to generate an artifactId without an extension. In practice, `spring init foo` creates a foo directory with a project whose artifactId is `foo` and `spring init foo.zip` stores a foo.zip file with the same project (i.e. the artifactId is `foo`). Closes gh-3714
This commit is contained in:
@@ -139,6 +139,39 @@ public class ProjectGenerationRequestTests {
|
||||
this.request.generateUrl(createDefaultMetadata()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void outputCustomizeArtifactId() {
|
||||
this.request.setOutput("my-project");
|
||||
assertEquals(
|
||||
createDefaultUrl("?artifactId=my-project&type=test-type"),
|
||||
this.request.generateUrl(createDefaultMetadata()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void outputArchiveCustomizeArtifactId() {
|
||||
this.request.setOutput("my-project.zip");
|
||||
assertEquals(
|
||||
createDefaultUrl("?artifactId=my-project&type=test-type"),
|
||||
this.request.generateUrl(createDefaultMetadata()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void outputArchiveWithDotsCustomizeArtifactId() {
|
||||
this.request.setOutput("my.nice.project.zip");
|
||||
assertEquals(
|
||||
createDefaultUrl("?artifactId=my.nice.project&type=test-type"),
|
||||
this.request.generateUrl(createDefaultMetadata()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void outputDoesNotOverrideCustomArtifactId() {
|
||||
this.request.setOutput("my-project");
|
||||
this.request.setArtifactId("my-id");
|
||||
assertEquals(
|
||||
createDefaultUrl("?artifactId=my-id&type=test-type"),
|
||||
this.request.generateUrl(createDefaultMetadata()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void buildNoMatch() {
|
||||
InitializrServiceMetadata metadata = readMetadata();
|
||||
|
||||
Reference in New Issue
Block a user