mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
IDEA-96937 Unused Maven dependencies are not downloaded and shown in red
This commit is contained in:
+24
-1
@@ -26,6 +26,7 @@ import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiManager;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.xml.ConvertContext;
|
||||
import com.intellij.util.xml.DomElement;
|
||||
import com.intellij.util.xml.DomUtil;
|
||||
import com.intellij.util.xml.ResolvingConverter;
|
||||
import gnu.trove.THashSet;
|
||||
@@ -45,7 +46,7 @@ import java.io.File;
|
||||
import java.util.Collection;
|
||||
import java.util.Set;
|
||||
|
||||
public abstract class MavenArtifactCoordinatesConverter extends ResolvingConverter<String> {
|
||||
public abstract class MavenArtifactCoordinatesConverter extends ResolvingConverter<String> implements MavenDomSoftAwareConverter {
|
||||
public String fromString(@Nullable @NonNls String s, ConvertContext context) {
|
||||
if (s == null) return null;
|
||||
|
||||
@@ -96,6 +97,28 @@ public abstract class MavenArtifactCoordinatesConverter extends ResolvingConvert
|
||||
return ArrayUtil.append(super.getQuickFixes(context), new MyUpdateIndicesFix());
|
||||
}
|
||||
|
||||
public boolean isSoft(@NotNull DomElement element) {
|
||||
DomElement dependencyOrPluginElement = element.getParent();
|
||||
if (dependencyOrPluginElement instanceof MavenDomDependency) {
|
||||
DomElement dependencies = dependencyOrPluginElement.getParent();
|
||||
if (dependencies instanceof MavenDomDependencies) {
|
||||
if (dependencies.getParent() instanceof MavenDomDependencyManagement) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (dependencyOrPluginElement instanceof MavenDomPlugin) {
|
||||
DomElement pluginsElement = dependencyOrPluginElement.getParent();
|
||||
if (pluginsElement instanceof MavenDomPlugins) {
|
||||
if (pluginsElement.getParent() instanceof MavenDomPluginManagement) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private ConverterStrategy selectStrategy(ConvertContext context) {
|
||||
if (MavenDomUtil.getImmediateParent(context, MavenDomProjectModel.class) != null) {
|
||||
return new ProjectStrategy();
|
||||
|
||||
+115
@@ -0,0 +1,115 @@
|
||||
/*
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.jetbrains.idea.maven.dom
|
||||
|
||||
/**
|
||||
* @author Sergey Evdokimov
|
||||
*/
|
||||
class MavenDontCheckDependencyInManagementSectionTest extends MavenDomTestCase {
|
||||
|
||||
public void testHighlighting() {
|
||||
importProject("""
|
||||
<groupId>test</groupId>
|
||||
<artifactId>m1</artifactId>
|
||||
<version>1</version>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>xxxx</groupId>
|
||||
<artifactId>yyyy</artifactId>
|
||||
<version>zzzz</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>xxxx</groupId>
|
||||
<artifactId>yyyy</artifactId>
|
||||
<version>zzzz</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>xxxx</groupId>
|
||||
<artifactId>yyyy</artifactId>
|
||||
<version>zzzz</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>xxxx</groupId>
|
||||
<artifactId>yyyy</artifactId>
|
||||
<version>zzzz</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
""")
|
||||
|
||||
createProjectPom("""
|
||||
<groupId>test</groupId>
|
||||
<artifactId>m1</artifactId>
|
||||
<version>1</version>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId><error>xxxx</error></groupId>
|
||||
<artifactId><error>yyyy</error></artifactId>
|
||||
<version><error>zzzz</error></version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>xxxx</groupId>
|
||||
<artifactId>yyyy</artifactId>
|
||||
<version>zzzz</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId><error>xxxx</error></groupId>
|
||||
<artifactId><error>yyyy</error></artifactId>
|
||||
<version><error>zzzz</error></version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>xxxx</groupId>
|
||||
<artifactId>yyyy</artifactId>
|
||||
<version>zzzz</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
""")
|
||||
|
||||
checkHighlighting(myProjectPom, true, false, true)
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user