mirror of
https://gitee.com/dcren/initializr.git
synced 2026-02-25 21:22:58 +08:00
Add support for Maven defaultGoal
See gh-1134
This commit is contained in:
committed by
Stephane Nicoll
parent
314586de6a
commit
db0b33df42
@@ -53,6 +53,8 @@ public class MavenBuildSettings extends BuildSettings {
|
|||||||
|
|
||||||
private final String testSourceDirectory;
|
private final String testSourceDirectory;
|
||||||
|
|
||||||
|
private final String defaultGoal;
|
||||||
|
|
||||||
protected MavenBuildSettings(Builder builder) {
|
protected MavenBuildSettings(Builder builder) {
|
||||||
super(builder);
|
super(builder);
|
||||||
this.parent = builder.parent;
|
this.parent = builder.parent;
|
||||||
@@ -65,6 +67,7 @@ public class MavenBuildSettings extends BuildSettings {
|
|||||||
this.finalName = builder.finalName;
|
this.finalName = builder.finalName;
|
||||||
this.sourceDirectory = builder.sourceDirectory;
|
this.sourceDirectory = builder.sourceDirectory;
|
||||||
this.testSourceDirectory = builder.testSourceDirectory;
|
this.testSourceDirectory = builder.testSourceDirectory;
|
||||||
|
this.defaultGoal = builder.defaultGoal;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -151,6 +154,14 @@ public class MavenBuildSettings extends BuildSettings {
|
|||||||
return this.testSourceDirectory;
|
return this.testSourceDirectory;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the default goal to execute when none is specified for the project.
|
||||||
|
* @return the default goal or {@code null} to use the default
|
||||||
|
*/
|
||||||
|
public String getDefaultGoal() {
|
||||||
|
return this.defaultGoal;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Builder for a Maven dependency.
|
* Builder for a Maven dependency.
|
||||||
*
|
*
|
||||||
@@ -178,6 +189,8 @@ public class MavenBuildSettings extends BuildSettings {
|
|||||||
|
|
||||||
private String testSourceDirectory;
|
private String testSourceDirectory;
|
||||||
|
|
||||||
|
private String defaultGoal;
|
||||||
|
|
||||||
public Builder() {
|
public Builder() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -298,6 +311,16 @@ public class MavenBuildSettings extends BuildSettings {
|
|||||||
return self();
|
return self();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the default goal to execute when none is specified for the project.
|
||||||
|
* @param defaultGoal the default goal or {@code null} to use the default
|
||||||
|
* @return this for method chaining
|
||||||
|
*/
|
||||||
|
public Builder defaultGoal(String defaultGoal) {
|
||||||
|
this.defaultGoal = defaultGoal;
|
||||||
|
return self();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MavenBuildSettings build() {
|
public MavenBuildSettings build() {
|
||||||
return new MavenBuildSettings(this);
|
return new MavenBuildSettings(this);
|
||||||
|
|||||||
@@ -305,12 +305,13 @@ public class MavenBuildWriter {
|
|||||||
private void writeBuild(IndentingWriter writer, MavenBuild build) {
|
private void writeBuild(IndentingWriter writer, MavenBuild build) {
|
||||||
MavenBuildSettings settings = build.getSettings();
|
MavenBuildSettings settings = build.getSettings();
|
||||||
if (settings.getFinalName() == null && settings.getSourceDirectory() == null
|
if (settings.getFinalName() == null && settings.getSourceDirectory() == null
|
||||||
&& settings.getTestSourceDirectory() == null && build.resources().isEmpty()
|
&& settings.getTestSourceDirectory() == null && settings.getDefaultGoal() == null
|
||||||
&& build.testResources().isEmpty() && build.plugins().isEmpty()) {
|
&& build.resources().isEmpty() && build.testResources().isEmpty() && build.plugins().isEmpty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
writer.println();
|
writer.println();
|
||||||
writeElement(writer, "build", () -> {
|
writeElement(writer, "build", () -> {
|
||||||
|
writeSingleElement(writer, "defaultGoal", settings.getDefaultGoal());
|
||||||
writeSingleElement(writer, "finalName", settings.getFinalName());
|
writeSingleElement(writer, "finalName", settings.getFinalName());
|
||||||
writeSingleElement(writer, "sourceDirectory", settings.getSourceDirectory());
|
writeSingleElement(writer, "sourceDirectory", settings.getSourceDirectory());
|
||||||
writeSingleElement(writer, "testSourceDirectory", settings.getTestSourceDirectory());
|
writeSingleElement(writer, "testSourceDirectory", settings.getTestSourceDirectory());
|
||||||
|
|||||||
@@ -139,4 +139,11 @@ class MavenBuildTests {
|
|||||||
.hasOnlyOneElementSatisfying((testPlugin) -> assertThat(testPlugin.isExtensions()).isTrue());
|
.hasOnlyOneElementSatisfying((testPlugin) -> assertThat(testPlugin.isExtensions()).isTrue());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void mavenDefaultGoalCanBeCustomized() {
|
||||||
|
MavenBuild build = new MavenBuild();
|
||||||
|
build.settings().defaultGoal("clean package");
|
||||||
|
assertThat(build.getSettings().getDefaultGoal()).isEqualTo("clean package");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -802,6 +802,21 @@ class MavenBuildWriterTests {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void pomWithNoDefaultGoal() {
|
||||||
|
MavenBuild build = new MavenBuild();
|
||||||
|
build.settings().coordinates("com.example.demo", "demo").build();
|
||||||
|
generatePom(build, (pom) -> assertThat(pom.nodeAtPath("/project/build/defaultGoal")).isNull());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void pomWithDefaultGoal() {
|
||||||
|
MavenBuild build = new MavenBuild();
|
||||||
|
build.settings().coordinates("com.example.demo", "demo").defaultGoal("clean package");
|
||||||
|
generatePom(build,
|
||||||
|
(pom) -> assertThat(pom).textAtPath("/project/build/defaultGoal").isEqualTo("clean package"));
|
||||||
|
}
|
||||||
|
|
||||||
private void generatePom(MavenBuild mavenBuild, Consumer<NodeAssert> consumer) {
|
private void generatePom(MavenBuild mavenBuild, Consumer<NodeAssert> consumer) {
|
||||||
MavenBuildWriter writer = new MavenBuildWriter();
|
MavenBuildWriter writer = new MavenBuildWriter();
|
||||||
StringWriter out = new StringWriter();
|
StringWriter out = new StringWriter();
|
||||||
|
|||||||
Reference in New Issue
Block a user