package scaffolding; import com.github.danielflower.mavenplugins.release.ReleasableModule; import com.github.danielflower.mavenplugins.release.ValidationException; import com.github.danielflower.mavenplugins.release.VersionNamer; import org.apache.maven.project.MavenProject; public class ReleasableModuleBuilder { private final VersionNamer versionNamer = new VersionNamer(); MavenProject project = new MavenProject(); private long buildNumber = 123; private String equivalentVersion = null; private String relativePathToModule = "."; public ReleasableModuleBuilder withBuildNumber(long buildNumber) { this.buildNumber = buildNumber; return this; } public ReleasableModuleBuilder withEquivalentVersion(String equivalentVersion) { this.equivalentVersion = equivalentVersion; return this; } public ReleasableModuleBuilder withRelativePathToModule(String relativePathToModule) { this.relativePathToModule = relativePathToModule; return this; } public ReleasableModuleBuilder withGroupId(String groupId) { project.setGroupId(groupId); return this; } public ReleasableModuleBuilder withArtifactId(String artifactId) { project.setArtifactId(artifactId); return this; } public ReleasableModuleBuilder withSnapshotVersion(String snapshotVersion) { project.setVersion(snapshotVersion); return this; } public ReleasableModule build() throws ValidationException { return new ReleasableModule(project, versionNamer.name(project.getVersion(), buildNumber, null), equivalentVersion, relativePathToModule); } public static ReleasableModuleBuilder aModule() { return new ReleasableModuleBuilder() .withGroupId("com.github.danielflower.somegroup") .withArtifactId("some-artifact"); } }