Write base
This commit is contained in:
parent
2fe5fed011
commit
579008c360
55
src/main/java/me/braydon/plugin/VersioningMojo.java
Normal file
55
src/main/java/me/braydon/plugin/VersioningMojo.java
Normal file
@ -0,0 +1,55 @@
|
||||
package me.braydon.plugin;
|
||||
|
||||
import org.apache.maven.model.Build;
|
||||
import org.apache.maven.plugin.AbstractMojo;
|
||||
import org.apache.maven.plugins.annotations.Component;
|
||||
import org.apache.maven.plugins.annotations.LifecyclePhase;
|
||||
import org.apache.maven.plugins.annotations.Mojo;
|
||||
import org.apache.maven.project.MavenProject;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* @author Braydon
|
||||
*/
|
||||
@Mojo(name = "versioning", defaultPhase = LifecyclePhase.GENERATE_SOURCES, threadSafe = true)
|
||||
public final class VersioningMojo extends AbstractMojo {
|
||||
/**
|
||||
* The regex to use to replace target versions.
|
||||
*/
|
||||
private static final Pattern TARGET_REGEX = Pattern.compile("(?i)(-snapshot|-dev)");
|
||||
|
||||
/**
|
||||
* The {@link MavenProject} to use for
|
||||
* reading and writing pom data.
|
||||
*/
|
||||
@Component private MavenProject project;
|
||||
|
||||
@Override
|
||||
public void execute() {
|
||||
Matcher matcher = TARGET_REGEX.matcher(project.getVersion()); // Create a matcher for the version
|
||||
if (!matcher.find()) { // Matcher found nothing, aka the version is not a target
|
||||
return;
|
||||
}
|
||||
String target = matcher.group(); // Extract the found target version
|
||||
|
||||
// Fetch git data
|
||||
System.out.println("Retrieving git data..."); // Log git data retrieval
|
||||
int depth = 0; // The amount of commits since the last tag
|
||||
String commitHash = "unknown"; // The commit hash of the current commit
|
||||
|
||||
Map.Entry<String, Integer> gitData = GitUtils.getGitData(); // Get the git data
|
||||
if (gitData == null) { // No git data
|
||||
System.out.println("Failed to retrieve git data, is this a git repository?");
|
||||
} else {
|
||||
depth = gitData.getValue(); // Set the depth
|
||||
commitHash = gitData.getKey(); // Set the commit hash
|
||||
}
|
||||
|
||||
// Updating the output jar name
|
||||
Build build = project.getBuild(); // Get the build
|
||||
build.setFinalName(build.getFinalName().replace(target, "-dev-" + depth + "-" + commitHash));
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user