Skip to content

Commit

Permalink
#1241 support nested projects with nesting > 1
Browse files Browse the repository at this point in the history
  • Loading branch information
ukeller committed Nov 3, 2021
1 parent 472be4e commit dc2cc4f
Showing 1 changed file with 7 additions and 17 deletions.
24 changes: 7 additions & 17 deletions jacoco-maven-plugin/src/org/jacoco/maven/ReportAggregateMojo.java
Expand Up @@ -26,6 +26,7 @@
import org.apache.maven.model.Dependency;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.plugins.annotations.ResolutionScope;
import org.apache.maven.project.MavenProject;
import org.jacoco.report.IReportGroupVisitor;

Expand Down Expand Up @@ -53,7 +54,7 @@
*
* @since 0.7.7
*/
@Mojo(name = "report-aggregate", threadSafe = true)
@Mojo(name = "report-aggregate", threadSafe = true, requiresDependencyResolution = ResolutionScope.TEST)
public class ReportAggregateMojo extends AbstractReportMojo {

/**
Expand Down Expand Up @@ -164,10 +165,9 @@ public String getName(final Locale locale) {
private List<MavenProject> findDependencies(final String... scopes) {
final List<MavenProject> result = new ArrayList<MavenProject>();
final List<String> scopeList = Arrays.asList(scopes);
for (final Object dependencyObject : project.getDependencies()) {
final Dependency dependency = (Dependency) dependencyObject;
if (scopeList.contains(dependency.getScope())) {
final MavenProject project = findProjectFromReactor(dependency);
for (final Artifact artifact : project.getArtifacts()) {
if (scopeList.contains(artifact.getScope())) {
final MavenProject project = findProjectFromReactor(artifact);
if (project != null) {
result.add(project);
}
Expand All @@ -183,21 +183,11 @@ private List<MavenProject> findDependencies(final String... scopes) {
* selected. For example in case of range <code>[0,2]</code> if version 1 is
* before version 2 in reactor, then version 1 will be selected.
*/
private MavenProject findProjectFromReactor(final Dependency d) {
final VersionRange depVersionAsRange;
try {
depVersionAsRange = VersionRange
.createFromVersionSpec(d.getVersion());
} catch (final InvalidVersionSpecificationException e) {
throw new AssertionError(e);
}

private MavenProject findProjectFromReactor(final Artifact d) {
for (final MavenProject p : reactorProjects) {
final DefaultArtifactVersion pv = new DefaultArtifactVersion(
p.getVersion());
if (p.getGroupId().equals(d.getGroupId())
&& p.getArtifactId().equals(d.getArtifactId())
&& depVersionAsRange.containsVersion(pv)) {
&& d.getVersion().equals(p.getVersion())) {
return p;
}
}
Expand Down

0 comments on commit dc2cc4f

Please sign in to comment.