mirror of
https://gitee.com/dcren/initializr.git
synced 2025-09-19 01:58:16 +08:00
Add support for Maven's finalName
See gh-1052
This commit is contained in:

committed by
Stephane Nicoll

parent
335cd87e7e
commit
0f7196ae02
@@ -51,6 +51,8 @@ public class MavenBuildSettings extends BuildSettings {
|
||||
|
||||
private final String testSourceDirectory;
|
||||
|
||||
private final String finalName;
|
||||
|
||||
protected MavenBuildSettings(Builder builder) {
|
||||
super(builder);
|
||||
this.parent = builder.parent;
|
||||
@@ -62,6 +64,7 @@ public class MavenBuildSettings extends BuildSettings {
|
||||
this.scm = builder.scm.build();
|
||||
this.sourceDirectory = builder.sourceDirectory;
|
||||
this.testSourceDirectory = builder.testSourceDirectory;
|
||||
this.finalName = builder.finalName;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -140,6 +143,14 @@ public class MavenBuildSettings extends BuildSettings {
|
||||
return this.testSourceDirectory;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the final name of the compiled artifact.
|
||||
* @return the final name
|
||||
*/
|
||||
public String getFinalName() {
|
||||
return this.finalName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Builder for a Maven dependency.
|
||||
*
|
||||
@@ -165,6 +176,8 @@ public class MavenBuildSettings extends BuildSettings {
|
||||
|
||||
private String testSourceDirectory;
|
||||
|
||||
private String finalName;
|
||||
|
||||
public Builder() {
|
||||
}
|
||||
|
||||
@@ -275,6 +288,16 @@ public class MavenBuildSettings extends BuildSettings {
|
||||
return self();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the finalName of the artifact as a child tag in the <build> tag.
|
||||
* @param finalName the final name of the artifact after compiling
|
||||
* @return this for method chaining
|
||||
*/
|
||||
public Builder finalName(String finalName) {
|
||||
this.finalName = finalName;
|
||||
return self();
|
||||
}
|
||||
|
||||
@Override
|
||||
public MavenBuildSettings build() {
|
||||
return new MavenBuildSettings(this);
|
||||
|
@@ -305,11 +305,13 @@ public class MavenBuildWriter {
|
||||
private void writeBuild(IndentingWriter writer, MavenBuild build) {
|
||||
MavenBuildSettings settings = build.getSettings();
|
||||
if (settings.getSourceDirectory() == null && settings.getTestSourceDirectory() == null
|
||||
&& build.resources().isEmpty() && build.testResources().isEmpty() && build.plugins().isEmpty()) {
|
||||
&& settings.getFinalName() == null && build.resources().isEmpty() && build.testResources().isEmpty()
|
||||
&& build.plugins().isEmpty()) {
|
||||
return;
|
||||
}
|
||||
writer.println();
|
||||
writeElement(writer, "build", () -> {
|
||||
writeSingleElement(writer, "finalName", settings.getFinalName());
|
||||
writeSingleElement(writer, "sourceDirectory", settings.getSourceDirectory());
|
||||
writeSingleElement(writer, "testSourceDirectory", settings.getTestSourceDirectory());
|
||||
writeResources(writer, build);
|
||||
|
@@ -685,6 +685,14 @@ class MavenBuildWriterTests {
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
void pomWithFinalName() {
|
||||
MavenBuild build = new MavenBuild();
|
||||
build.settings().coordinates("com.example.demo", "demo").finalName("theArtifact.jar");
|
||||
generatePom(build,
|
||||
(pom) -> assertThat(pom).textAtPath("/project/build/finalName").isEqualTo("theArtifact.jar"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void pomWithCustomVersion() {
|
||||
MavenBuild build = new MavenBuild();
|
||||
|
Reference in New Issue
Block a user