Skip to content

Commit b4ff8f1

Browse files
Merge pull request #40 from mike-mack/add-non-root-pom-feature-maven-plugin
Add non-root-POM feature to Maven plugin
2 parents 866279b + f68838b commit b4ff8f1

File tree

4 files changed

+52
-18
lines changed

4 files changed

+52
-18
lines changed

refactor-first-maven-plugin/src/main/java/org/hjug/mavenreport/RefactorFirstJsonReport/RefactorFirstMavenJsonReport.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
import com.fasterxml.jackson.core.JsonProcessingException;
66
import com.fasterxml.jackson.databind.ObjectMapper;
7+
import java.io.File;
8+
import java.nio.file.Paths;
79
import java.util.ArrayList;
810
import java.util.Collections;
911
import java.util.List;
@@ -36,7 +38,14 @@ public class RefactorFirstMavenJsonReport extends AbstractMojo {
3638

3739
@Override
3840
public void execute() {
39-
final String projectBaseDir = project.getBasedir().getPath();
41+
String projectBaseDir;
42+
43+
File baseDir = project.getBasedir();
44+
if (baseDir != null) {
45+
projectBaseDir = baseDir.getPath();
46+
} else {
47+
projectBaseDir = Paths.get("").toAbsolutePath().toString();
48+
}
4049

4150
final CostBenefitCalculator costBenefitCalculator = new CostBenefitCalculator();
4251
final List<RankedDisharmony> rankedDisharmonies =

refactor-first-maven-plugin/src/main/java/org/hjug/mavenreport/RefactorFirstMavenCsvReport.java

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,11 @@
33
import static org.hjug.mavenreport.ReportWriter.writeReportToDisk;
44

55
import java.io.File;
6+
import java.nio.file.Paths;
67
import java.time.Instant;
78
import java.time.ZoneId;
89
import java.time.format.DateTimeFormatter;
9-
import java.util.Comparator;
10-
import java.util.List;
11-
import java.util.Locale;
12-
import java.util.Optional;
10+
import java.util.*;
1311
import lombok.extern.slf4j.Slf4j;
1412
import org.apache.maven.plugin.AbstractMojo;
1513
import org.apache.maven.plugins.annotations.LifecyclePhase;
@@ -26,7 +24,7 @@
2624
name = "csvreport",
2725
defaultPhase = LifecyclePhase.SITE,
2826
requiresDependencyResolution = ResolutionScope.RUNTIME,
29-
requiresProject = true,
27+
requiresProject = false,
3028
threadSafe = true,
3129
inheritByDefault = false)
3230
public class RefactorFirstMavenCsvReport extends AbstractMojo {
@@ -78,16 +76,29 @@ public void execute() {
7876
.append(".csv");
7977
String filename = fileNameSB.toString();
8078

79+
if (Objects.equals(project.getName(), "Maven Stub Project (No POM)")) {
80+
projectName = new File(Paths.get("").toAbsolutePath().toString()).getName();
81+
}
82+
8183
log.info("Generating {} for {} - {} date: {}", filename, projectName, projectVersion, publishedDate);
8284

8385
StringBuilder contentBuilder = new StringBuilder();
8486

8587
// git management
8688
GitLogReader gitLogReader = new GitLogReader();
87-
String projectBaseDir = project.getBasedir().getPath();
88-
Optional<File> optionalGitDir = Optional.ofNullable(gitLogReader.getGitDir(project.getBasedir()));
89-
File gitDir;
89+
String projectBaseDir;
90+
Optional<File> optionalGitDir;
9091

92+
File baseDir = project.getBasedir();
93+
if (baseDir != null) {
94+
projectBaseDir = baseDir.getPath();
95+
optionalGitDir = Optional.ofNullable(gitLogReader.getGitDir(baseDir));
96+
} else {
97+
projectBaseDir = Paths.get("").toAbsolutePath().toString();
98+
optionalGitDir = Optional.ofNullable(gitLogReader.getGitDir(new File(projectBaseDir)));
99+
}
100+
101+
File gitDir;
91102
if (optionalGitDir.isPresent()) {
92103
gitDir = optionalGitDir.get();
93104
} else {

refactor-first-maven-plugin/src/main/java/org/hjug/mavenreport/RefactorFirstMavenReport.java

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,12 @@
66
import java.io.File;
77
import java.io.FileWriter;
88
import java.io.IOException;
9+
import java.nio.file.Paths;
910
import java.time.Instant;
1011
import java.time.ZoneId;
1112
import java.time.format.DateTimeFormatter;
1213
import java.time.format.FormatStyle;
13-
import java.util.Comparator;
14-
import java.util.List;
15-
import java.util.Locale;
16-
import java.util.Optional;
14+
import java.util.*;
1715
import lombok.extern.slf4j.Slf4j;
1816
import org.apache.maven.plugin.AbstractMojo;
1917
import org.apache.maven.plugins.annotations.LifecyclePhase;
@@ -31,7 +29,7 @@
3129
name = "report",
3230
defaultPhase = LifecyclePhase.SITE,
3331
requiresDependencyResolution = ResolutionScope.RUNTIME,
34-
requiresProject = true,
32+
requiresProject = false,
3533
threadSafe = true,
3634
inheritByDefault = false)
3735
public class RefactorFirstMavenReport extends AbstractMojo {
@@ -132,6 +130,10 @@ public void execute() {
132130

133131
String filename = getOutputName() + ".html";
134132

133+
if (Objects.equals(project.getName(), "Maven Stub Project (No POM)")) {
134+
projectName = new File(Paths.get("").toAbsolutePath().toString()).getName();
135+
}
136+
135137
log.info("Generating {} for {} - {}", filename, projectName, projectVersion);
136138

137139
DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT)
@@ -197,10 +199,19 @@ public void execute() {
197199
.append("<div id=\"series_chart_div\"></div>");
198200

199201
GitLogReader gitLogReader = new GitLogReader();
200-
String projectBaseDir = project.getBasedir().getPath();
201-
Optional<File> optionalGitDir = Optional.ofNullable(gitLogReader.getGitDir(project.getBasedir()));
202-
File gitDir;
202+
String projectBaseDir;
203+
Optional<File> optionalGitDir;
203204

205+
File baseDir = project.getBasedir();
206+
if (baseDir != null) {
207+
projectBaseDir = baseDir.getPath();
208+
optionalGitDir = Optional.ofNullable(gitLogReader.getGitDir(baseDir));
209+
} else {
210+
projectBaseDir = Paths.get("").toAbsolutePath().toString();
211+
optionalGitDir = Optional.ofNullable(gitLogReader.getGitDir(new File(projectBaseDir)));
212+
}
213+
214+
File gitDir;
204215
if (optionalGitDir.isPresent()) {
205216
gitDir = optionalGitDir.get();
206217
} else {

refactor-first-maven-plugin/src/main/java/org/hjug/mavenreport/ReportWriter.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,10 @@
1212
public class ReportWriter {
1313
public static void writeReportToDisk(
1414
final MavenProject project, final String filename, final StringBuilder stringBuilder) {
15-
final String reportOutputDirectory = project.getModel().getReporting().getOutputDirectory();
15+
final String reportOutputDirectory = project.getModel()
16+
.getReporting()
17+
.getOutputDirectory()
18+
.replace("${project.basedir}" + File.separator, "");
1619
final File reportOutputDir = new File(reportOutputDirectory);
1720

1821
if (!reportOutputDir.exists()) {

0 commit comments

Comments
 (0)