Search in sources :

Example 1 with MavenArtifactNode

use of org.jetbrains.idea.maven.model.MavenArtifactNode in project intellij-community by JetBrains.

the class MavenProjectTest method testDependenciesTreeWithConflict.

public void testDependenciesTreeWithConflict() throws Exception {
    VirtualFile m1 = createModulePom("p1", "<groupId>test</groupId>" + "<artifactId>m1</artifactId>" + "<version>1</version>" + "<dependencies>" + "  <dependency>" + "    <groupId>test</groupId>" + "    <artifactId>m2</artifactId>" + "    <version>1</version>" + "  </dependency>" + "  <dependency>" + "    <groupId>test</groupId>" + "    <artifactId>lib</artifactId>" + "    <version>1</version>" + "  </dependency>" + "</dependencies>");
    VirtualFile m2 = createModulePom("p2", "<groupId>test</groupId>" + "<artifactId>m2</artifactId>" + "<version>1</version>" + "<dependencies>" + "  <dependency>" + "    <groupId>test</groupId>" + "    <artifactId>lib</artifactId>" + "    <version>2</version>" + "  </dependency>" + "</dependencies>");
    importProjects(m1, m2);
    resolveDependenciesAndImport();
    List<MavenArtifactNode> nodes = myProjectsTree.getRootProjects().get(0).getDependencyTree();
    assertDependenciesNodes(nodes, "test:m2:jar:1->(test:lib:jar:2[CONFLICT:test:lib:jar:1]->())," + "test:lib:jar:1->()");
    assertSame(nodes.get(0).getDependencies().get(0).getRelatedArtifact(), nodes.get(1).getArtifact());
}
Also used : VirtualFile(com.intellij.openapi.vfs.VirtualFile) MavenArtifactNode(org.jetbrains.idea.maven.model.MavenArtifactNode)

Example 2 with MavenArtifactNode

use of org.jetbrains.idea.maven.model.MavenArtifactNode in project intellij-community by JetBrains.

the class MavenProjectTest method testDependencyTreeDuplicates.

public void testDependencyTreeDuplicates() throws Exception {
    VirtualFile m1 = createModulePom("p1", "<groupId>test</groupId>" + "<artifactId>m1</artifactId>" + "<version>1</version>" + "<dependencies>" + "  <dependency>" + "    <groupId>test</groupId>" + "    <artifactId>m2</artifactId>" + "    <version>1</version>" + "  </dependency>" + "  <dependency>" + "    <groupId>test</groupId>" + "    <artifactId>m3</artifactId>" + "    <version>1</version>" + "  </dependency>" + "</dependencies>");
    VirtualFile m2 = createModulePom("p2", "<groupId>test</groupId>" + "<artifactId>m2</artifactId>" + "<version>1</version>" + "<dependencies>" + "  <dependency>" + "    <groupId>test</groupId>" + "    <artifactId>lib</artifactId>" + "    <version>1</version>" + "  </dependency>" + "</dependencies>");
    VirtualFile m3 = createModulePom("p3", "<groupId>test</groupId>" + "<artifactId>m3</artifactId>" + "<version>1</version>" + "<dependencies>" + "  <dependency>" + "    <groupId>test</groupId>" + "    <artifactId>lib</artifactId>" + "    <version>1</version>" + "  </dependency>" + "</dependencies>");
    importProjects(m1, m2, m3);
    resolveDependenciesAndImport();
    List<MavenArtifactNode> nodes = myProjectsTree.findProject(m1).getDependencyTree();
    assertDependenciesNodes(nodes, "test:m2:jar:1->(test:lib:jar:1->()),test:m3:jar:1->(test:lib:jar:1[DUPLICATE:test:lib:jar:1]->())");
    assertSame(nodes.get(0).getDependencies().get(0).getArtifact(), nodes.get(1).getDependencies().get(0).getRelatedArtifact());
}
Also used : VirtualFile(com.intellij.openapi.vfs.VirtualFile) MavenArtifactNode(org.jetbrains.idea.maven.model.MavenArtifactNode)

Example 3 with MavenArtifactNode

use of org.jetbrains.idea.maven.model.MavenArtifactNode in project intellij-plugins by JetBrains.

the class ImporterUtil method collectDependencies.

/**
   * Collects the dependencies for the given project. Takes into account any transitive embedding instructions.
   *
   * @param props   the properties with additional instructions
   * @param project the maven project
   * @return a collection of dependencies.
   */
@NotNull
static Collection<MavenArtifact> collectDependencies(@NotNull Map<String, String> props, @NotNull MavenProject project) {
    Collection<MavenArtifact> dependencies;
    if (Boolean.parseBoolean(props.get(DependencyEmbedder.EMBED_TRANSITIVE))) {
        Set<MavenArtifact> processed = new HashSet<>();
        // flatten the tree while taking care of endless recursions
        LinkedList<MavenArtifactNode> nodes = new LinkedList<>(project.getDependencyTree());
        while (!nodes.isEmpty()) {
            MavenArtifactNode node = nodes.pop();
            MavenArtifact artifact = node.getArtifact();
            if (!processed.contains(artifact)) {
                processed.add(artifact);
                nodes.addAll(node.getDependencies());
            }
        }
        dependencies = processed;
    } else {
        dependencies = project.getDependencies();
    }
    return dependencies;
}
Also used : MavenArtifactNode(org.jetbrains.idea.maven.model.MavenArtifactNode) MavenArtifact(org.jetbrains.idea.maven.model.MavenArtifact) NotNull(org.jetbrains.annotations.NotNull)

Aggregations

MavenArtifactNode (org.jetbrains.idea.maven.model.MavenArtifactNode)3 VirtualFile (com.intellij.openapi.vfs.VirtualFile)2 NotNull (org.jetbrains.annotations.NotNull)1 MavenArtifact (org.jetbrains.idea.maven.model.MavenArtifact)1