diff options
author | Lukas Krejci <metlos@users.noreply.github.com> | 2018-08-17 02:56:13 +0200 |
---|---|---|
committer | Evgeny Mandrikov <Godin@users.noreply.github.com> | 2018-08-17 02:56:13 +0200 |
commit | 63d55acf9071446e9ea6706d6a65c94d87faca17 (patch) | |
tree | eaffcc00977558a68466886aa1199f3e16c13838 /jacoco-maven-plugin | |
parent | 436f0227c0a7563547870cb2a56f36cd1b4cf754 (diff) | |
download | jacoco-63d55acf9071446e9ea6706d6a65c94d87faca17.tar.gz |
Maven goal `report-aggregate` should consider dependencies specified using version range (#658)
Diffstat (limited to 'jacoco-maven-plugin')
-rw-r--r-- | jacoco-maven-plugin/src/org/jacoco/maven/ReportAggregateMojo.java | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/jacoco-maven-plugin/src/org/jacoco/maven/ReportAggregateMojo.java b/jacoco-maven-plugin/src/org/jacoco/maven/ReportAggregateMojo.java index 5597ddfa..890d277c 100644 --- a/jacoco-maven-plugin/src/org/jacoco/maven/ReportAggregateMojo.java +++ b/jacoco-maven-plugin/src/org/jacoco/maven/ReportAggregateMojo.java @@ -19,6 +19,9 @@ import java.util.List; import java.util.Locale; import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.versioning.DefaultArtifactVersion; +import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException; +import org.apache.maven.artifact.versioning.VersionRange; import org.apache.maven.model.Dependency; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; @@ -177,11 +180,28 @@ public class ReportAggregateMojo extends AbstractReportMojo { return result; } + /** + * Note that if dependency specified using version range and reactor + * contains multiple modules with same artifactId and groupId but of + * different versions, then first dependency which matches range will be + * 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 (InvalidVersionSpecificationException e) { + throw new AssertionError(e); + } + for (final MavenProject p : reactorProjects) { + final DefaultArtifactVersion pv = new DefaultArtifactVersion( + p.getVersion()); if (p.getGroupId().equals(d.getGroupId()) && p.getArtifactId().equals(d.getArtifactId()) - && p.getVersion().equals(d.getVersion())) { + && depVersionAsRange.containsVersion(pv)) { return p; } } |