mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Maven: profiles should not be inherited (it causes inheriting modules from profiles)
This commit is contained in:
+1
-6
@@ -422,12 +422,7 @@ public class MavenProjectReader {
|
||||
MavenProjectProblem.ProblemType.PARENT));
|
||||
}
|
||||
|
||||
model = MavenServerManager.getInstance().assembleInheritance(model, parentModel);
|
||||
List<MavenProfile> profiles = model.getProfiles();
|
||||
for (MavenProfile each : parentModel.getProfiles()) {
|
||||
addProfileIfDoesNotExist(each, profiles);
|
||||
}
|
||||
return model;
|
||||
return MavenServerManager.getInstance().assembleInheritance(model, parentModel);
|
||||
}
|
||||
finally {
|
||||
recursionGuard.remove(file);
|
||||
|
||||
@@ -208,7 +208,7 @@ public class MavenServerManager extends RemoteObjectWrapper<MavenServer> {
|
||||
}
|
||||
params.getVMParametersList().addParametersString("-Xmx512m");
|
||||
|
||||
//params.getVMParametersList().addParametersString("-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5009");
|
||||
//params.getVMParametersList().addParametersString("-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5009");
|
||||
|
||||
return params;
|
||||
}
|
||||
|
||||
+42
-11
@@ -24,6 +24,7 @@ import com.intellij.openapi.roots.ModuleRootManager;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.pom.java.LanguageLevel;
|
||||
import org.jetbrains.idea.maven.MavenImportingTestCase;
|
||||
import org.jetbrains.idea.maven.model.MavenId;
|
||||
import org.jetbrains.idea.maven.project.MavenProject;
|
||||
|
||||
import java.io.File;
|
||||
@@ -107,6 +108,36 @@ public class StructureImportingTest extends MavenImportingTestCase {
|
||||
assertModules("project", "m1", "m2");
|
||||
}
|
||||
|
||||
public void testModulesAreNotInheritedFromParentsProfiles() throws Exception {
|
||||
createProjectPom("<groupId>test</groupId>" +
|
||||
"<artifactId>project</artifactId>" +
|
||||
"<version>1</version>" +
|
||||
"<packaging>pom</packaging>" +
|
||||
|
||||
"<profiles>\n" +
|
||||
" <profile>\n" +
|
||||
" <id>one</id>\n" +
|
||||
" <modules>" +
|
||||
" <module>m</module>" +
|
||||
" </modules>" +
|
||||
" </profile>" +
|
||||
"</profiles>");
|
||||
|
||||
createModulePom("m", "<groupId>test</groupId>" +
|
||||
"<artifactId>m</artifactId>" +
|
||||
"<version>1</version>" +
|
||||
"<parent>" +
|
||||
" <groupId>test</groupId>" +
|
||||
" <artifactId>project</artifactId>" +
|
||||
" <version>1</version>" +
|
||||
"</parent>");
|
||||
|
||||
importProjectWithProfiles("one");
|
||||
|
||||
assertSize(1, myProjectsManager.findProject(new MavenId("test", "project", "1")).getModulePaths());
|
||||
assertSize(0, myProjectsManager.findProject(new MavenId("test", "m", "1")).getModulePaths());
|
||||
}
|
||||
|
||||
public void testModulesWithSlashesAtTheEnds() throws Exception {
|
||||
createProjectPom("<groupId>test</groupId>" +
|
||||
"<artifactId>project</artifactId>" +
|
||||
@@ -344,18 +375,18 @@ public class StructureImportingTest extends MavenImportingTestCase {
|
||||
if (!hasMavenInstallation()) return;
|
||||
|
||||
final VirtualFile parent = createModulePom("parent",
|
||||
"<groupId>test</groupId>" +
|
||||
"<artifactId>parent</artifactId>" +
|
||||
"<version>1</version>" +
|
||||
"<packaging>pom</packaging>" +
|
||||
"<groupId>test</groupId>" +
|
||||
"<artifactId>parent</artifactId>" +
|
||||
"<version>1</version>" +
|
||||
"<packaging>pom</packaging>" +
|
||||
|
||||
"<dependencies>" +
|
||||
" <dependency>" +
|
||||
" <groupId>junit</groupId>" +
|
||||
" <artifactId>junit</artifactId>" +
|
||||
" <version>4.0</version>" +
|
||||
" </dependency>" +
|
||||
"</dependencies>");
|
||||
"<dependencies>" +
|
||||
" <dependency>" +
|
||||
" <groupId>junit</groupId>" +
|
||||
" <artifactId>junit</artifactId>" +
|
||||
" <version>4.0</version>" +
|
||||
" </dependency>" +
|
||||
"</dependencies>");
|
||||
executeGoal("parent", "install");
|
||||
|
||||
new WriteAction() {
|
||||
|
||||
+37
-46
@@ -23,10 +23,11 @@ import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.Function;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.idea.maven.MavenTestCase;
|
||||
import org.jetbrains.idea.maven.model.*;
|
||||
import org.jetbrains.idea.maven.model.MavenId;
|
||||
import org.jetbrains.idea.maven.model.MavenModel;
|
||||
import org.jetbrains.idea.maven.model.MavenProjectProblem;
|
||||
import org.jetbrains.idea.maven.model.MavenResource;
|
||||
import org.jetbrains.idea.maven.utils.MavenUtil;
|
||||
|
||||
import java.io.File;
|
||||
@@ -493,7 +494,7 @@ public class MavenProjectReaderTest extends MavenTestCase {
|
||||
assertEquals("${prop2}", p.getPackaging());
|
||||
}
|
||||
|
||||
public void testHandlingRecursionProprielyAndDoNotForgetCoClearRecursionGuard() throws Exception {
|
||||
public void testHandlingRecursionProperlyAndDoNotForgetCoClearRecursionGuard() throws Exception {
|
||||
File repositoryPath = new File(myDir, "repository");
|
||||
setRepositoryPath(repositoryPath.getPath());
|
||||
|
||||
@@ -999,44 +1000,6 @@ public class MavenProjectReaderTest extends MavenTestCase {
|
||||
assertEquals("xxx", p.getBuild().getFinalName());
|
||||
}
|
||||
|
||||
|
||||
public void testInheritingParentProfiles() throws Exception {
|
||||
createProjectPom("<groupId>test</groupId>" +
|
||||
"<artifactId>parent</artifactId>" +
|
||||
"<version>1</version>" +
|
||||
|
||||
"<profiles>" +
|
||||
" <profile>" +
|
||||
" <id>profileFromParent</id>" +
|
||||
" </profile>" +
|
||||
"</profiles>");
|
||||
|
||||
VirtualFile module = createModulePom("module",
|
||||
"<groupId>test</groupId>" +
|
||||
"<artifactId>module</artifactId>" +
|
||||
"<version>1</version>" +
|
||||
|
||||
"<parent>" +
|
||||
" <groupId>test</groupId>" +
|
||||
" <artifactId>parent</artifactId>" +
|
||||
" <version>1</version>" +
|
||||
"</parent>" +
|
||||
|
||||
"<profiles>" +
|
||||
" <profile>" +
|
||||
" <id>profileFromChild</id>" +
|
||||
" </profile>" +
|
||||
"</profiles>");
|
||||
|
||||
MavenModel p = readProject(module);
|
||||
assertOrderedElementsAreEqual(ContainerUtil.map(p.getProfiles(), new Function<MavenProfile, Object>() {
|
||||
@Override
|
||||
public Object fun(MavenProfile profile) {
|
||||
return profile.getId();
|
||||
}
|
||||
}), "profileFromChild", "profileFromParent");
|
||||
}
|
||||
|
||||
public void testCorrectlyCollectProfilesFromDifferentSources() throws Exception {
|
||||
createProjectPom("<groupId>test</groupId>" +
|
||||
"<artifactId>parent</artifactId>" +
|
||||
@@ -1116,8 +1079,8 @@ public class MavenProjectReaderTest extends MavenTestCase {
|
||||
|
||||
p = readProject(module);
|
||||
assertEquals(1, p.getProfiles().size());
|
||||
assertEquals("parent", p.getProfiles().get(0).getModules().get(0));
|
||||
assertEquals("pom", p.getProfiles().get(0).getSource());
|
||||
assertEquals("settings", p.getProfiles().get(0).getModules().get(0));
|
||||
assertEquals("settings.xml", p.getProfiles().get(0).getSource());
|
||||
|
||||
createProjectPom("<groupId>test</groupId>" +
|
||||
"<artifactId>parent</artifactId>" +
|
||||
@@ -1125,8 +1088,8 @@ public class MavenProjectReaderTest extends MavenTestCase {
|
||||
|
||||
p = readProject(module);
|
||||
assertEquals(1, p.getProfiles().size());
|
||||
assertEquals("parentProfiles", p.getProfiles().get(0).getModules().get(0));
|
||||
assertEquals("profiles.xml", p.getProfiles().get(0).getSource());
|
||||
assertEquals("settings", p.getProfiles().get(0).getModules().get(0));
|
||||
assertEquals("settings.xml", p.getProfiles().get(0).getSource());
|
||||
|
||||
new WriteCommandAction.Simple(myProject) {
|
||||
@Override
|
||||
@@ -1142,6 +1105,34 @@ public class MavenProjectReaderTest extends MavenTestCase {
|
||||
assertEquals("settings.xml", p.getProfiles().get(0).getSource());
|
||||
}
|
||||
|
||||
public void testModulesAreNotInheritedFromParentsProfiles() throws Exception {
|
||||
VirtualFile p = createProjectPom("<groupId>test</groupId>" +
|
||||
"<artifactId>project</artifactId>" +
|
||||
"<version>1</version>" +
|
||||
"<packaging>pom</packaging>" +
|
||||
|
||||
"<profiles>" +
|
||||
" <profile>" +
|
||||
" <id>one</id>" +
|
||||
" <modules>" +
|
||||
" <module>m</module>" +
|
||||
" </modules>" +
|
||||
" </profile>" +
|
||||
"</profiles>");
|
||||
|
||||
VirtualFile m = createModulePom("m", "<groupId>test</groupId>" +
|
||||
"<artifactId>m</artifactId>" +
|
||||
"<version>1</version>" +
|
||||
"<parent>" +
|
||||
" <groupId>test</groupId>" +
|
||||
" <artifactId>project</artifactId>" +
|
||||
" <version>1</version>" +
|
||||
"</parent>");
|
||||
|
||||
assertSize(1, readProject(p, "one").getModules());
|
||||
assertSize(0, readProject(m, "one").getModules());
|
||||
}
|
||||
|
||||
public void testActivatingProfilesByDefault() throws Exception {
|
||||
createProjectPom("<profiles>" +
|
||||
" <profile>" +
|
||||
|
||||
Reference in New Issue
Block a user