mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-02-04 23:39:07 +07:00
[artifact editor] don't suggest to put MANIFEST.MF file to a source root in Maven/Gradle projects (IDEA-99596)
...because it won't be copied to the output in such a case. For JPS projects it also makes sense to put MANIFEST.MF to a resource root if any. GitOrigin-RevId: 9713c912e89bf0986f75d078db0ce36e7018dfec
This commit is contained in:
committed by
intellij-monorepo-bot
parent
f5a5f55dd9
commit
00873ba10e
@@ -16,8 +16,9 @@ import com.intellij.openapi.fileChooser.FileChooser;
|
||||
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
|
||||
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.OrderEnumerator;
|
||||
import com.intellij.openapi.roots.ModuleRootManager;
|
||||
import com.intellij.openapi.roots.ProjectRootManager;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
|
||||
@@ -41,8 +42,11 @@ import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.util.PsiMethodUtil;
|
||||
import com.intellij.util.PathUtil;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jps.model.java.JavaResourceRootType;
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootType;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
@@ -110,12 +114,19 @@ public final class ManifestFileUtil {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static VirtualFile suggestManifestFileDirectory(@NotNull Project project, @Nullable Module module) {
|
||||
OrderEnumerator enumerator = module != null ? OrderEnumerator.orderEntries(module) : OrderEnumerator.orderEntries(project);
|
||||
final VirtualFile[] files = enumerator.withoutDepModules().withoutLibraries().withoutSdk().productionOnly().sources().getRoots();
|
||||
if (files.length > 0) {
|
||||
return files[0];
|
||||
public static VirtualFile suggestManifestFileDirectory(@NotNull Project project, @Nullable Module selectedModule) {
|
||||
Module[] modules = selectedModule != null ? new Module[] {selectedModule} : ModuleManager.getInstance(project).getModules();
|
||||
VirtualFile resourceRoot = null;
|
||||
VirtualFile sourceRoot = null;
|
||||
for (Module module : modules) {
|
||||
if (resourceRoot == null) {
|
||||
resourceRoot = ContainerUtil.getFirstItem(ModuleRootManager.getInstance(module).getSourceRoots(JavaResourceRootType.RESOURCE));
|
||||
}
|
||||
if (ArtifactUtil.areResourceFilesFromSourceRootsCopiedToOutput(module) && sourceRoot == null)
|
||||
sourceRoot = ContainerUtil.getFirstItem(ModuleRootManager.getInstance(module).getSourceRoots(JavaSourceRootType.SOURCE));
|
||||
}
|
||||
if (resourceRoot != null) return resourceRoot;
|
||||
if (sourceRoot != null) return sourceRoot;
|
||||
return suggestBaseDir(project, null);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user