Add the possibility to omit explicitly specifying a version in annotationProcessorPaths
Resolve the version of the annotation processor path (specified in annotationProcessorPaths) in kapt plugin if it is already specified in dependencies of this module or parent module. Plugin management is also supported. #KT-59521 In Fixed Merge-request: KT-MR-10761 Merged-by: Aleksei Cherepanov <aleksei.cherepanov@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
e4d1e6246e
commit
a3583ea79b
+17
-1
@@ -25,6 +25,7 @@ import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
|
||||
import org.apache.maven.artifact.resolver.ResolutionErrorHandler;
|
||||
import org.apache.maven.artifact.versioning.VersionRange;
|
||||
import org.apache.maven.execution.MavenSession;
|
||||
import org.apache.maven.model.Dependency;
|
||||
import org.apache.maven.plugin.MojoExecutionException;
|
||||
import org.apache.maven.plugin.compiler.DependencyCoordinate;
|
||||
import org.apache.maven.project.MavenProject;
|
||||
@@ -167,7 +168,7 @@ public class AnnotationProcessingManager {
|
||||
return new DefaultArtifact(
|
||||
dependency.getGroupId(),
|
||||
dependency.getArtifactId(),
|
||||
VersionRange.createFromVersionSpec(dependency.getVersion()),
|
||||
VersionRange.createFromVersionSpec(evaluateVersion(dependency)),
|
||||
Artifact.SCOPE_RUNTIME,
|
||||
dependency.getType(),
|
||||
dependency.getClassifier(),
|
||||
@@ -175,6 +176,21 @@ public class AnnotationProcessingManager {
|
||||
false);
|
||||
}
|
||||
|
||||
private String evaluateVersion(@NotNull DependencyCoordinate dependency) {
|
||||
String version = dependency.getVersion();
|
||||
if (version == null) {
|
||||
Optional<Dependency> sameButParentDependency = project.getDependencies().stream()
|
||||
.filter(dep -> dep.getGroupId().equals(dependency.getGroupId())
|
||||
&& dep.getArtifactId().equals(dependency.getArtifactId())
|
||||
&& dep.getVersion() != null
|
||||
).findFirst();
|
||||
if (sameButParentDependency.isPresent()) {
|
||||
version = sameButParentDependency.get().getVersion();
|
||||
}
|
||||
}
|
||||
return version;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static String getMavenPluginVersion() throws MojoExecutionException {
|
||||
ClassLoader classLoader = AnnotationProcessingManager.class.getClassLoader();
|
||||
|
||||
Reference in New Issue
Block a user