mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-107511 maven: tag sourceDirectory can't recognize a value as path in multi-module project
This commit is contained in:
@@ -25,6 +25,7 @@ import com.intellij.util.xml.GenericDomValue;
|
||||
import com.intellij.util.xml.Required;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.idea.maven.dom.references.MavenDirectoryPathReferenceConverter;
|
||||
import org.jetbrains.idea.maven.dom.references.MavenSourceDirectoryConverter;
|
||||
|
||||
/**
|
||||
* http://maven.apache.org/POM/4.0.0:Build interface.
|
||||
@@ -46,7 +47,7 @@ public interface MavenDomBuild extends MavenDomBuildBase {
|
||||
*/
|
||||
@NotNull
|
||||
@Required(value = false, nonEmpty = true)
|
||||
@Convert(value = MavenDirectoryPathReferenceConverter.class, soft = false)
|
||||
@Convert(value = MavenSourceDirectoryConverter.class, soft = false)
|
||||
GenericDomValue<PathReference> getSourceDirectory();
|
||||
|
||||
/**
|
||||
@@ -60,7 +61,7 @@ public interface MavenDomBuild extends MavenDomBuildBase {
|
||||
*/
|
||||
@NotNull
|
||||
@Required(value = false, nonEmpty = true)
|
||||
@Convert(value = MavenDirectoryPathReferenceConverter.class, soft = false)
|
||||
@Convert(value = MavenSourceDirectoryConverter.class, soft = false)
|
||||
GenericDomValue<PathReference> getScriptSourceDirectory();
|
||||
|
||||
/**
|
||||
@@ -74,7 +75,7 @@ public interface MavenDomBuild extends MavenDomBuildBase {
|
||||
*/
|
||||
@NotNull
|
||||
@Required(value = false, nonEmpty = true)
|
||||
@Convert(value = MavenDirectoryPathReferenceConverter.class, soft = false)
|
||||
@Convert(value = MavenSourceDirectoryConverter.class, soft = false)
|
||||
GenericDomValue<PathReference> getTestSourceDirectory();
|
||||
|
||||
/**
|
||||
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* 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.references;
|
||||
|
||||
import com.intellij.util.xml.DomElement;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.idea.maven.dom.converters.MavenDomSoftAwareConverter;
|
||||
import org.jetbrains.idea.maven.dom.model.MavenDomBuild;
|
||||
import org.jetbrains.idea.maven.dom.model.MavenDomProjectModel;
|
||||
|
||||
/**
|
||||
* @author Sergey Evdokimov
|
||||
*/
|
||||
public class MavenSourceDirectoryConverter extends MavenDirectoryPathReferenceConverter implements MavenDomSoftAwareConverter {
|
||||
@Override
|
||||
public boolean isSoft(@NotNull DomElement element) {
|
||||
DomElement buildElement = element.getParent();
|
||||
if (!(buildElement instanceof MavenDomBuild)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
DomElement mavenProject = buildElement.getParent();
|
||||
if (!(mavenProject instanceof MavenDomProjectModel)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return "pom".equals(((MavenDomProjectModel)mavenProject).getPackaging().getStringValue());
|
||||
}
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
/*
|
||||
* 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
|
||||
*/
|
||||
public class MavenDomSoftReferencesInParentTest extends MavenDomTestCase {
|
||||
|
||||
public void testDoNotHighlightSourceDirectoryInParentPom() throws Throwable {
|
||||
importProject("<groupId>test</groupId>\n" +
|
||||
"<artifactId>project</artifactId>\n" +
|
||||
"<version>1</version>\n" +
|
||||
|
||||
"<packaging>pom</packaging>\n" +
|
||||
"<build>\n" +
|
||||
"<sourceDirectory>dsfsfd/sdfsdf</sourceDirectory>\n" +
|
||||
"<testSourceDirectory>qwqwq/weqweqw</testSourceDirectory>\n" +
|
||||
"<scriptSourceDirectory>dfsdf/fsdf</scriptSourceDirectory>\n" +
|
||||
"</build>\n" +
|
||||
"");
|
||||
|
||||
checkHighlighting();
|
||||
}
|
||||
|
||||
public void testHighlightSourceDirectory() throws Throwable {
|
||||
importProject("<groupId>test</groupId>\n" +
|
||||
"<artifactId>project</artifactId>\n" +
|
||||
"<version>1</version>\n" +
|
||||
|
||||
"<packaging>jar</packaging>\n" +
|
||||
|
||||
"<build>\n" +
|
||||
"<sourceDirectory>foo1</sourceDirectory>\n" +
|
||||
"<testSourceDirectory>foo2</testSourceDirectory>\n" +
|
||||
"<scriptSourceDirectory>foo3</scriptSourceDirectory>\n" +
|
||||
"</build>\n" +
|
||||
"");
|
||||
|
||||
createProjectPom("<groupId>test</groupId>\n" +
|
||||
"<artifactId>project</artifactId>\n" +
|
||||
"<version>1</version>\n" +
|
||||
|
||||
"<packaging>jar</packaging>\n" +
|
||||
|
||||
"<build>\n" +
|
||||
//"<sourceDirectory><error descr=\"Cannot resolve file 'foo1'\">foo1</error></sourceDirectory>\n" +
|
||||
//"<testSourceDirectory><error descr=\"Cannot resolve file 'foo2'\">foo2</error></testSourceDirectory>\n" +
|
||||
//"<scriptSourceDirectory><error descr=\"Cannot resolve file 'foo3'\">foo3</error></scriptSourceDirectory>\n" +
|
||||
|
||||
"<sourceDirectory><error>foo1</error></sourceDirectory>\n" +
|
||||
"<testSourceDirectory><error>foo2</error></testSourceDirectory>\n" +
|
||||
"<scriptSourceDirectory><error>foo3</error></scriptSourceDirectory>\n" +
|
||||
"</build>\n" +
|
||||
"");
|
||||
|
||||
checkHighlighting();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user