Skip to content

Commit ea48709

Browse files
committed
Explicitly handled the cases for the different versions of scalac-scoverage-plugin
Improved comment explaining the artifact resolution process Removed unnecessary null check
1 parent 213462f commit ea48709

File tree

1 file changed

+27
-15
lines changed

1 file changed

+27
-15
lines changed

src/main/java/org/scoverage/plugin/SCoveragePreCompileMojo.java

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
3434
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
3535
import org.apache.maven.artifact.resolver.ArtifactResolver;
36+
import org.apache.maven.artifact.versioning.ArtifactVersion;
37+
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
3638
import org.apache.maven.model.Dependency;
3739
import org.apache.maven.plugin.AbstractMojo;
3840
import org.apache.maven.plugin.MojoExecutionException;
@@ -287,11 +289,6 @@ else if ( "2.13".equals( resolvedScalaVersion ) || resolvedScalaVersion.startsWi
287289
List<Artifact> pluginArtifacts = getScalaScoveragePluginArtifacts( resolvedScalaVersion, scalaBinaryVersion );
288290
Artifact runtimeArtifact = getScalaScoverageRuntimeArtifact( scalaBinaryVersion );
289291

290-
if ( pluginArtifacts == null )
291-
{
292-
return; // scoverage plugin will not be configured
293-
}
294-
295292
addScoverageDependenciesToClasspath( runtimeArtifact );
296293

297294
String arg = DATA_DIR_OPTION + dataDirectory.getAbsolutePath();
@@ -446,23 +443,38 @@ private List<Artifact> getScalaScoveragePluginArtifacts(String resolvedScalaVers
446443
}
447444
}
448445

449-
try
450-
{
446+
// There are 3 cases depending on the version of scalac-scoverage-plugin
447+
// * Version 2.0.0 onwards - 3 artifacts, plugin using resolvedScalaVersion
448+
// * Version 1.4.2 - 1 artifact, plugin using resolvedScalaVersion falling back to scalaMainVersion
449+
// * Version 1.4.1 older - 1 artifact, plugin using scalaMainVersion
450+
//
451+
final ArtifactVersion pluginArtifactVersion = new DefaultArtifactVersion(resolvedScalacPluginVersion);
452+
if(pluginArtifactVersion.getMajorVersion() > 2) {
451453
List<Artifact> resolvedArtifacts = new ArrayList<>();
452454
resolvedArtifacts.add(getResolvedArtifact("org.scoverage", "scalac-scoverage-plugin_" + resolvedScalaVersion, resolvedScalacPluginVersion));
453455
resolvedArtifacts.add(getResolvedArtifact("org.scoverage", "scalac-scoverage-domain_" + scalaMainVersion, resolvedScalacPluginVersion));
454456
resolvedArtifacts.add(getResolvedArtifact("org.scoverage", "scalac-scoverage-serializer_" + scalaMainVersion, resolvedScalacPluginVersion));
455457
return resolvedArtifacts;
456-
}
457-
catch ( ArtifactNotFoundException | ArtifactResolutionException e )
458+
} else if (pluginArtifactVersion.getMajorVersion() == 1 && pluginArtifactVersion.getMinorVersion() == 4 && pluginArtifactVersion.getIncrementalVersion() == 2)
458459
{
459-
getLog().warn( String.format( "Artifact \"org.scoverage:scalac-scoverage-plugin_%s:%s\" not found, " +
460-
"falling back to \"org.scoverage:scalac-scoverage-plugin_%s:%s\"",
461-
resolvedScalaVersion, resolvedScalacPluginVersion, scalaMainVersion, resolvedScalacPluginVersion ) );
462-
463-
// for scalac-scoverage-plugin versions up to 1.4.1
460+
try
461+
{
462+
return Collections.singletonList(
463+
getResolvedArtifact("org.scoverage", "scalac-scoverage-plugin_" + resolvedScalaVersion, resolvedScalacPluginVersion )
464+
);
465+
}
466+
catch ( ArtifactNotFoundException | ArtifactResolutionException e2 )
467+
{
468+
getLog().warn( String.format( "Artifact \"org.scoverage:scalac-scoverage-plugin_%s:%s\" not found, " +
469+
"falling back to \"org.scoverage:scalac-scoverage-plugin_%s:%s\"",
470+
resolvedScalaVersion, resolvedScalacPluginVersion, scalaMainVersion, resolvedScalacPluginVersion ) );
471+
return Collections.singletonList(
472+
getResolvedArtifact("org.scoverage", "scalac-scoverage-plugin_" + scalaMainVersion, resolvedScalacPluginVersion )
473+
);
474+
}
475+
} else {
464476
return Collections.singletonList(
465-
getResolvedArtifact("org.scoverage", "scalac-scoverage-plugin_" + scalaMainVersion, resolvedScalacPluginVersion )
477+
getResolvedArtifact("org.scoverage", "scalac-scoverage-plugin_" + scalaMainVersion, resolvedScalacPluginVersion )
466478
);
467479
}
468480
}

0 commit comments

Comments
 (0)