From 2b19d66e625171785850253a5cb647df652edf4d Mon Sep 17 00:00:00 2001 From: Lorenzo Bettini Date: Thu, 7 Dec 2023 11:36:21 +0100 Subject: [PATCH] Plugin test projects should not use "target/test-classes" in .classpath https://github.com/eclipse/xtext/issues/2498 --- .../xtext/ui/wizard/project/XtextProjectCreator.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/org.eclipse.xtext.xtext.ui/src/org/eclipse/xtext/xtext/ui/wizard/project/XtextProjectCreator.java b/org.eclipse.xtext.xtext.ui/src/org/eclipse/xtext/xtext/ui/wizard/project/XtextProjectCreator.java index 6da18d0f983..d832d42a4ed 100644 --- a/org.eclipse.xtext.xtext.ui/src/org/eclipse/xtext/xtext/ui/wizard/project/XtextProjectCreator.java +++ b/org.eclipse.xtext.xtext.ui/src/org/eclipse/xtext/xtext/ui/wizard/project/XtextProjectCreator.java @@ -117,7 +117,12 @@ private void configureJavaProject(ProjectDescriptor descriptor, JavaProjectFacto factory.addProjectNatures(JavaCore.NATURE_ID); factory.addBuilderIds(JavaCore.BUILDER_ID); for (SourceFolderDescriptor sourceFolder : descriptor.getSourceFolders()) { - String output = sourceFolder.isTest() ? (needsM2eIntegration(descriptor) ? "target/test-classes" : "test-bin") : null; + String output = sourceFolder.isTest() ? + (needsM2eIntegration(descriptor) ? + (needsTychoIntegration(descriptor) ? + "target/classes" : // Tycho will generate into target/classes for eclipse-plugin-test projects + "target/test-classes") + : "test-bin") : null; factory.addSourceFolder(sourceFolder.getPath(), output, sourceFolder.isTest()); } factory.setJreContainerEntry(JREContainerProvider.getJREContainerEntry(descriptor.getBree())); @@ -287,6 +292,10 @@ private boolean needsM2eIntegration(ProjectDescriptor descriptor) { return descriptor.isPartOfMavenBuild() && descriptor.getConfig().needsMavenBuild(); } + private boolean needsTychoIntegration(ProjectDescriptor descriptor) { + return descriptor.isPartOfMavenBuild() && descriptor.getConfig().needsTychoBuild(); + } + private boolean needsBuildshipIntegration(ProjectDescriptor descriptor) { return descriptor.isPartOfGradleBuild() && descriptor.getConfig().needsGradleBuild(); }