mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
repository libraries: support artifacts with pom packaging (IDEA-209554)
'Download Library from Maven Repository' dialog now allows to specify packaging (if groupId:artifactId:packaging:version format is used).
This commit is contained in:
@@ -21,7 +21,7 @@ import java.util.EnumSet;
|
||||
|
||||
public enum ArtifactKind {
|
||||
ARTIFACT("", "jar"), SOURCES("sources", "jar"), JAVADOC("javadoc", "jar"),
|
||||
ANNOTATIONS("annotations", "zip"), AAR_ARTIFACT("", "aar");
|
||||
ANNOTATIONS("annotations", "zip"), AAR_ARTIFACT("", "aar"), POM("", "pom");
|
||||
|
||||
private final String myClassifier;
|
||||
private final String myExtension;
|
||||
|
||||
@@ -98,7 +98,7 @@ public class JarRepositoryManager {
|
||||
boolean includeTransitiveDependencies = dialog.getIncludeTransitiveDependencies();
|
||||
final String copyTo = dialog.getDirectoryPath();
|
||||
|
||||
final EnumSet<ArtifactKind> artifactKinds = kindsOf(attachSources, attachJavaDoc);
|
||||
final EnumSet<ArtifactKind> artifactKinds = kindsOf(attachSources, attachJavaDoc, dialog.getPackaging());
|
||||
if (attachAnnotations) {
|
||||
artifactKinds.add(ArtifactKind.ANNOTATIONS);
|
||||
}
|
||||
@@ -276,9 +276,9 @@ public class JarRepositoryManager {
|
||||
return repositories;
|
||||
}
|
||||
|
||||
protected static EnumSet<ArtifactKind> kindsOf(boolean loadSources, boolean loadJavadoc, String... artifactPackaging) {
|
||||
public static EnumSet<ArtifactKind> kindsOf(boolean loadSources, boolean loadJavadoc, String... artifactPackaging) {
|
||||
final EnumSet<ArtifactKind> kinds = ArtifactKind.kindsOf(loadSources, loadJavadoc);
|
||||
if (artifactPackaging.length == 0) {
|
||||
if (artifactPackaging.length == 0 || artifactPackaging.length == 1 && artifactPackaging[0] == null) {
|
||||
kinds.add(ArtifactKind.ARTIFACT);
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -393,8 +393,18 @@ public class RepositoryAttachDialog extends DialogWrapper {
|
||||
}
|
||||
|
||||
public String getCoordinateText() {
|
||||
final JTextField field = (JTextField)myCombobox.getEditor().getEditorComponent();
|
||||
return field.getText();
|
||||
String text = getFullCoordinateText();
|
||||
List<String> parts = StringUtil.split(text, ":");
|
||||
return parts.size() == 4 ? parts.get(0) + ":" + parts.get(1) + ":" + parts.get(3) : text;
|
||||
}
|
||||
|
||||
public String getPackaging() {
|
||||
List<String> parts = StringUtil.split(getFullCoordinateText(), ":");
|
||||
return parts.size() == 4 ? parts.get(2) : null;
|
||||
}
|
||||
|
||||
private String getFullCoordinateText() {
|
||||
return ((JTextField)myCombobox.getEditor().getEditorComponent()).getText();
|
||||
}
|
||||
|
||||
private void createUIComponents() {
|
||||
|
||||
+3
-2
@@ -50,8 +50,9 @@ public class RepositoryLibraryWithDescriptionEditor
|
||||
//String oldVersion = properties.getVersion();
|
||||
boolean wasGeneratedName =
|
||||
RepositoryLibraryType.getInstance().getDescription(properties).equals(myEditorComponent.getLibraryEditor().getName());
|
||||
final EnumSet<ArtifactKind> artifactKinds = ArtifactKind.kindsOf(libraryHasSources(myEditorComponent.getLibraryEditor()),
|
||||
libraryHasJavaDocs(myEditorComponent.getLibraryEditor()));
|
||||
final EnumSet<ArtifactKind> artifactKinds = JarRepositoryManager.kindsOf(libraryHasSources(myEditorComponent.getLibraryEditor()),
|
||||
libraryHasJavaDocs(myEditorComponent.getLibraryEditor()),
|
||||
properties.getPackaging());
|
||||
if (libraryHasExternalAnnotations(myEditorComponent.getLibraryEditor())) {
|
||||
artifactKinds.add(ArtifactKind.ANNOTATIONS);
|
||||
}
|
||||
|
||||
+3
-2
@@ -16,6 +16,7 @@
|
||||
package org.jetbrains.idea.maven.utils.library.propertiesEditor;
|
||||
|
||||
import com.google.common.base.Strings;
|
||||
import com.intellij.jarRepository.JarRepositoryManager;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.idea.maven.aether.ArtifactKind;
|
||||
|
||||
@@ -26,7 +27,7 @@ import java.util.List;
|
||||
|
||||
public class RepositoryLibraryPropertiesModel {
|
||||
private String version;
|
||||
private final EnumSet<ArtifactKind> myArtifactKinds = EnumSet.of(ArtifactKind.ARTIFACT);
|
||||
private final EnumSet<ArtifactKind> myArtifactKinds = EnumSet.noneOf(ArtifactKind.class);
|
||||
private boolean includeTransitiveDependencies;
|
||||
private List<String> myExcludedDependencies;
|
||||
|
||||
@@ -36,7 +37,7 @@ public class RepositoryLibraryPropertiesModel {
|
||||
|
||||
public RepositoryLibraryPropertiesModel(String version, boolean downloadSources, boolean downloadJavaDocs,
|
||||
boolean includeTransitiveDependencies, List<String> excludedDependencies) {
|
||||
this(version, ArtifactKind.kindsOf(downloadSources, downloadJavaDocs), includeTransitiveDependencies, excludedDependencies);
|
||||
this(version, JarRepositoryManager.kindsOf(downloadSources, downloadJavaDocs), includeTransitiveDependencies, excludedDependencies);
|
||||
}
|
||||
|
||||
public RepositoryLibraryPropertiesModel(String version, EnumSet<ArtifactKind> artifactKinds,
|
||||
|
||||
Reference in New Issue
Block a user