aboutsummaryrefslogtreecommitdiff
path: root/jacoco-maven-plugin
diff options
context:
space:
mode:
authorLukas Krejci <metlos@users.noreply.github.com>2018-08-17 02:56:13 +0200
committerEvgeny Mandrikov <Godin@users.noreply.github.com>2018-08-17 02:56:13 +0200
commit63d55acf9071446e9ea6706d6a65c94d87faca17 (patch)
treeeaffcc00977558a68466886aa1199f3e16c13838 /jacoco-maven-plugin
parent436f0227c0a7563547870cb2a56f36cd1b4cf754 (diff)
downloadjacoco-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.java22
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;
}
}