mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
[maven] maven 4 report problems
GitOrigin-RevId: 620e9a9a1e646ab4dcf845ce1a214c47cc3c210e
This commit is contained in:
committed by
intellij-monorepo-bot
parent
fa9d111ba5
commit
6ea0f4bf8f
@@ -475,7 +475,7 @@ public class Maven40ProjectResolver {
|
||||
|
||||
ProjectBuildingRequest projectBuildingRequest = request.getProjectBuildingRequest();
|
||||
projectBuildingRequest.setRepositorySession(session.getRepositorySession());
|
||||
projectBuildingRequest.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);
|
||||
projectBuildingRequest.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_4_0);
|
||||
projectBuildingRequest.setResolveDependencies(false);
|
||||
|
||||
if (files.size() == 1) {
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.maven.server.m40.utils;
|
||||
|
||||
import org.apache.maven.api.services.ModelBuilderException;
|
||||
import org.apache.maven.model.building.DefaultModelProblem;
|
||||
import org.apache.maven.model.building.ModelBuildingException;
|
||||
import org.apache.maven.model.building.ModelProblem;
|
||||
import org.apache.maven.project.DependencyResolutionResult;
|
||||
@@ -9,6 +11,7 @@ import org.apache.maven.project.ProjectBuildingException;
|
||||
import org.apache.maven.project.ProjectBuildingResult;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public final class Maven40ResolverUtil {
|
||||
@@ -19,11 +22,18 @@ public final class Maven40ResolverUtil {
|
||||
}
|
||||
else {
|
||||
Throwable cause = e.getCause();
|
||||
List<ModelProblem> problems = null;
|
||||
if (cause instanceof ModelBuildingException) {
|
||||
problems = ((ModelBuildingException)cause).getProblems();
|
||||
buildingResults.add(new MyProjectBuildingResult(null, e.getPomFile(), null, ((ModelBuildingException)cause).getProblems(), null));
|
||||
}
|
||||
else if (cause instanceof ModelBuilderException) {
|
||||
buildingResults.add(new MyProjectBuildingResult(null, e.getPomFile(), null, MavenApiConverterUtil.convertFromApiProblems(
|
||||
((ModelBuilderException)cause).getProblems()), null));
|
||||
}
|
||||
else {
|
||||
buildingResults.add(new MyProjectBuildingResult(null, e.getPomFile(), null, Collections.singletonList(
|
||||
new DefaultModelProblem(cause.getMessage(), ModelProblem.Severity.FATAL, ModelProblem.Version.BASE, "", 0, 0, null, e)
|
||||
), null));
|
||||
}
|
||||
buildingResults.add(new MyProjectBuildingResult(null, e.getPomFile(), null, problems, null));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,5 +82,4 @@ public final class Maven40ResolverUtil {
|
||||
return myDependencyResolutionResult;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.maven.server.m40.utils;
|
||||
|
||||
import org.apache.maven.api.services.BuilderProblem;
|
||||
import org.apache.maven.model.building.DefaultModelProblem;
|
||||
import org.apache.maven.model.building.ModelProblem;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public final class MavenApiConverterUtil {
|
||||
private MavenApiConverterUtil() { }
|
||||
|
||||
@SuppressWarnings("SSBasedInspection")
|
||||
public static List<ModelProblem> convertFromApiProblems(List<org.apache.maven.api.services.ModelProblem> problems) {
|
||||
return problems.stream().map(it -> new DefaultModelProblem(
|
||||
it.getMessage(),
|
||||
convertFromApiSeverity(it.getSeverity()),
|
||||
convertFromApiVersion(it.getVersion()),
|
||||
it.getSource(),
|
||||
it.getLineNumber(),
|
||||
it.getColumnNumber(),
|
||||
it.getModelId(),
|
||||
it.getException()
|
||||
)).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private static ModelProblem.Version convertFromApiVersion(org.apache.maven.api.services.ModelProblem.Version version) {
|
||||
switch (version) {
|
||||
case BASE:
|
||||
return ModelProblem.Version.BASE;
|
||||
case V20:
|
||||
return ModelProblem.Version.V20;
|
||||
case V30:
|
||||
return ModelProblem.Version.V30;
|
||||
case V31:
|
||||
return ModelProblem.Version.V31;
|
||||
case V40:
|
||||
return ModelProblem.Version.V40;
|
||||
}
|
||||
throw new IllegalArgumentException(version.toString());
|
||||
}
|
||||
|
||||
static private ModelProblem.Severity convertFromApiSeverity(BuilderProblem.Severity severity) {
|
||||
switch (severity) {
|
||||
case FATAL:
|
||||
return ModelProblem.Severity.FATAL;
|
||||
case ERROR:
|
||||
return ModelProblem.Severity.ERROR;
|
||||
case WARNING:
|
||||
return ModelProblem.Severity.WARNING;
|
||||
}
|
||||
throw new IllegalArgumentException(severity.toString());
|
||||
}
|
||||
}
|
||||
@@ -49,7 +49,7 @@ class InvalidProjectImportingTest : MavenMultiVersionImportingTestCase() {
|
||||
}
|
||||
|
||||
forMaven4 {
|
||||
assertProblems(projectsManager.findProject(projectPom)!! , "'dependencies.dependency.systemPath' for junit:junit:jar is missing.")
|
||||
assertProblems(projectsManager.findProject(projectPom)!!, "'dependencies.dependency.scope' for junit:junit:jar declares usage of deprecated 'system' scope ", "'dependencies.dependency.systemPath' for junit:junit:jar is missing.")
|
||||
}
|
||||
|
||||
|
||||
@@ -191,7 +191,7 @@ class InvalidProjectImportingTest : MavenMultiVersionImportingTestCase() {
|
||||
assertModules("project")
|
||||
val root = rootProjects[0]
|
||||
val problem = if (isMaven4
|
||||
) "'artifactId' with value '\${undefined}' does not match a valid coordinate id pattern."
|
||||
) "'artifactId' contains an expression but should be a constant., 'artifactId' with value '\${undefined}' does not match a valid coordinate id pattern."
|
||||
else "'artifactId' with value '\${undefined}' does not match a valid id pattern."
|
||||
assertProblems(root, problem)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user