diff --git a/src/main/java/pl/project13/maven/git/GitCommitIdMojo.java b/src/main/java/pl/project13/maven/git/GitCommitIdMojo.java index fb761b86..268b78d5 100644 --- a/src/main/java/pl/project13/maven/git/GitCommitIdMojo.java +++ b/src/main/java/pl/project13/maven/git/GitCommitIdMojo.java @@ -77,7 +77,6 @@ public class GitCommitIdMojo extends AbstractMojo { * The root directory of the repository we want to check * * @parameter - * @required */ private File dotGitDirectory; @@ -101,6 +100,8 @@ public class GitCommitIdMojo extends AbstractMojo { public final String logPrefix = "[GitCommitIdMojo] "; public void execute() throws MojoExecutionException { + dotGitDirectory = lookupGitDirectory(); + getLog().info(logPrefix + "Running on '" + dotGitDirectory.getAbsolutePath() + "' repository..."); try { @@ -117,7 +118,30 @@ public void execute() throws MojoExecutionException { getLog().info(logPrefix + "Finished running."); } - private void initProperties() throws MojoExecutionException { + private File lookupGitDirectory() + { + if (dotGitDirectory != null && dotGitDirectory.exists()) + { + return dotGitDirectory; + } + + if(project == null) + { + dotGitDirectory = new File(".git"); + if(dotGitDirectory.exists() && !dotGitDirectory.isFile()) { return dotGitDirectory; } + } + + dotGitDirectory = new File(project.getBasedir().getAbsolutePath() + "/.git"); + + if(dotGitDirectory.exists() && !dotGitDirectory.isFile()) { return dotGitDirectory; } + + dotGitDirectory = new File(project.getParent().getBasedir().getAbsolutePath() + "/.git"); + + if(dotGitDirectory.exists() && !dotGitDirectory.isFile()) { return dotGitDirectory; } + return dotGitDirectory; + } + + private void initProperties() throws MojoExecutionException { getLog().info(logPrefix + "initializing properties..."); if (project != null) { getLog().info(logPrefix + "Using maven project properties..."); @@ -202,10 +226,6 @@ private Repository getGitRepository() throws MojoExecutionException { Repository repository = null; FileRepositoryBuilder repositoryBuilder = new FileRepositoryBuilder(); - if (dotGitDirectory == null) { - dotGitDirectory = project.getBasedir(); - } - try { repository = repositoryBuilder .setGitDir(dotGitDirectory) diff --git a/src/test/java/pl/project13/maven/git/GitCommitIdMojoTest.java b/src/test/java/pl/project13/maven/git/GitCommitIdMojoTest.java index 9854d40b..f01de7da 100644 --- a/src/test/java/pl/project13/maven/git/GitCommitIdMojoTest.java +++ b/src/test/java/pl/project13/maven/git/GitCommitIdMojoTest.java @@ -35,7 +35,7 @@ public class GitCommitIdMojoTest extends PlexusTestCase { public void setUp() throws Exception { mojo = new GitCommitIdMojo(); - mojo.setDotGitDirectory(new File("/home/ktoso/coding/maven-plugins/git-commit-id-plugin/.git/")); + mojo.setDotGitDirectory(new File(".git/")); mojo.setPrefix("git"); mojo.setDateFormat("dd.MM.yyyy '@' HH:mm:ss z"); mojo.setVerbose(true);