Example usage for org.apache.maven.project MavenProject getDependencyManagement

List of usage examples for org.apache.maven.project MavenProject getDependencyManagement

Introduction

In this page you can find the example usage for org.apache.maven.project MavenProject getDependencyManagement.

Prototype

public DependencyManagement getDependencyManagement() 

Source Link

Usage

From source file:org.sonatype.maven.plugins.provideddependencies.GenerateMojo.java

License:Open Source License

/**
 * Builds a multimap of dependency groupId:artifactId to exclusions {@link GroupArtifact}.
 *///from w  w  w  . j  a va  2s. c  om
private Multimap<String, GroupArtifact> collectExclusions() {
    Multimap<String, GroupArtifact> mapping = LinkedHashMultimap.create();

    for (Artifact artifact : project.getArtifacts()) {
        MavenProject p;
        try {
            p = projectBuilder.buildFromRepository(artifact, project.getRemoteArtifactRepositories(),
                    localRepository);
        } catch (ProjectBuildingException e) {
            // ignore
            continue;
        }

        appendExclusions(mapping, p.getDependencies());

        if (p.getDependencyManagement() != null) {
            appendExclusions(mapping, p.getDependencyManagement().getDependencies());
        }
    }

    return mapping;
}

From source file:org.springframework.ide.eclipse.boot.core.internal.MavenSpringBootProject.java

License:Open Source License

/**
 * @return List of maven coordinates for known boot starters. These are
 *         discovered dynamically based on project contents. E.g. for maven
 *         projects we examine the 'dependencyManagement' section of the
 *         project's effective pom.//from   ww w .  ja  va2 s .co m
 *
 * @throws CoreException
 */
@Override
public List<SpringBootStarter> getKnownStarters() throws CoreException {
    MavenProject mp = getMavenProject();
    DependencyManagement depMan = mp.getDependencyManagement();
    if (depMan != null) {
        List<Dependency> deps = depMan.getDependencies();
        return getStarters(deps);
    }
    return NO_STARTERS;
}

From source file:org.springframework.ide.vscode.commons.maven.MavenCore.java

License:Open Source License

/**
 * Taken from M2E same named method from MavenModelManager
 *
 * @param repositorySystem/*from   w  w w .ja  v a2 s .com*/
 * @param repositorySession
 * @param mavenProject
 * @param scope
 * @return
 */
private DependencyNode readDependencyTree(org.eclipse.aether.RepositorySystem repositorySystem,
        RepositorySystemSession repositorySession, MavenProject mavenProject, String scope) {
    DefaultRepositorySystemSession session = new DefaultRepositorySystemSession(repositorySession);

    ConflictResolver transformer = new ConflictResolver(new NearestVersionSelector(), new JavaScopeSelector(),
            new SimpleOptionalitySelector(), new JavaScopeDeriver());
    session.setDependencyGraphTransformer(transformer);
    session.setConfigProperty(ConflictResolver.CONFIG_PROP_VERBOSE, Boolean.toString(true));
    session.setConfigProperty(DependencyManagerUtils.CONFIG_PROP_VERBOSE, true);

    ArtifactTypeRegistry stereotypes = session.getArtifactTypeRegistry();

    CollectRequest request = new CollectRequest();
    request.setRequestContext("project"); //$NON-NLS-1$
    request.setRepositories(mavenProject.getRemoteProjectRepositories());

    for (org.apache.maven.model.Dependency dependency : mavenProject.getDependencies()) {
        request.addDependency(RepositoryUtils.toDependency(dependency, stereotypes));
    }

    DependencyManagement depMngt = mavenProject.getDependencyManagement();
    if (depMngt != null) {
        for (org.apache.maven.model.Dependency dependency : depMngt.getDependencies()) {
            request.addManagedDependency(RepositoryUtils.toDependency(dependency, stereotypes));
        }
    }

    DependencyNode node;
    try {
        node = repositorySystem.collectDependencies(session, request).getRoot();
    } catch (DependencyCollectionException ex) {
        node = ex.getResult().getRoot();
    }

    Collection<String> scopes = new HashSet<String>();
    Collections.addAll(scopes, Artifact.SCOPE_SYSTEM, Artifact.SCOPE_COMPILE, Artifact.SCOPE_PROVIDED,
            Artifact.SCOPE_RUNTIME, Artifact.SCOPE_TEST);
    if (Artifact.SCOPE_COMPILE.equals(scope)) {
        scopes.remove(Artifact.SCOPE_COMPILE);
        scopes.remove(Artifact.SCOPE_SYSTEM);
        scopes.remove(Artifact.SCOPE_PROVIDED);
    } else if (Artifact.SCOPE_RUNTIME.equals(scope)) {
        scopes.remove(Artifact.SCOPE_COMPILE);
        scopes.remove(Artifact.SCOPE_RUNTIME);
    } else if (Artifact.SCOPE_COMPILE_PLUS_RUNTIME.equals(scope)) {
        scopes.remove(Artifact.SCOPE_COMPILE);
        scopes.remove(Artifact.SCOPE_SYSTEM);
        scopes.remove(Artifact.SCOPE_PROVIDED);
        scopes.remove(Artifact.SCOPE_RUNTIME);
    } else {
        scopes.clear();
    }

    CloningDependencyVisitor cloner = new CloningDependencyVisitor();
    node.accept(new FilteringDependencyVisitor(cloner, new ScopeDependencyFilter(null, scopes)));
    node = cloner.getRootNode();

    return node;
}

From source file:org.srcdeps.mvn.enforcer.SrcdepsEnforcer.java

License:Apache License

@Override
public void beforeProjectLifecycleExecution(ProjectExecutionEvent event) throws LifecycleExecutionException {
    final MavenProject project = event.getProject();
    log.info("srcdeps enforcer checks for violations in {}:{}", project.getGroupId(), project.getArtifactId());

    final Maven maven = configurationProducer.getConfiguration().getMaven();

    final List<MojoExecution> mojoExecutions = event.getExecutionPlan();
    final List<String> goals = new ArrayList<>(mojoExecutions.size());
    for (MojoExecution mojoExecution : mojoExecutions) {
        MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
        goals.add(mojoDescriptor.getFullGoalName());
        goals.add(mojoDescriptor.getGoal());
    }/*from  www . j  a  v  a2  s .co m*/

    final List<String> profiles = new ArrayList<>();
    final List<Profile> activeProfiles = project.getActiveProfiles();
    for (Profile profile : activeProfiles) {
        final String id = profile.getId();
        profiles.add(id);
    }

    final Properties props = new Properties();
    props.putAll(project.getProperties());
    props.putAll(System.getProperties());

    String[] firstViolation = assertFailWithout(maven.getFailWithout(), goals, profiles, props);
    if (firstViolation == null) {
        firstViolation = assertFailWith(maven.getFailWith(), goals, profiles, props);
    }
    if (firstViolation != null) {
        /* check if there are srcdeps */
        Artifact parent = project.getParentArtifact();
        if (parent != null) {
            assertNotSrcdeps(parent.getGroupId(), parent.getArtifactId(), parent.getVersion(), firstViolation);
        }
        DependencyManagement dm;
        List<Dependency> deps;
        if ((dm = project.getDependencyManagement()) != null && (deps = dm.getDependencies()) != null) {
            assertNotSrcdeps(deps, firstViolation);
        }
        if ((deps = project.getDependencies()) != null) {
            assertNotSrcdeps(deps, firstViolation);
        }
    }
}

From source file:org.srcdeps.mvn.plugin.SrcdepsInitMojo.java

License:Apache License

@Override
public void execute() throws MojoExecutionException, MojoFailureException {

    super.execute();

    org.srcdeps.core.GavSet.Builder gavSetBuilder = GavSet.builder() //
            .includes(includes) //
            .excludes(excludes);//from   w  ww .ja  v  a2  s. c  om
    if (excludeSnapshots) {
        gavSetBuilder.excludeSnapshots();
    }
    this.gavSet = gavSetBuilder.build();

    log.info("Using includes and excludes [{}]", gavSet);

    log.info("Supported SCMs: {}", scms);

    if (skip || !multiModuleRootDir.equals(session.getCurrentProject().getBasedir())) {
        log.info(getClass().getSimpleName() + " skipped");
    } else {

        Configuration.Builder config = Configuration.builder() //
                .configModelVersion(Configuration.getLatestConfigModelVersion()).commentBefore("") //
                .commentBefore("srcdeps.yaml - the srcdeps configuration file") //
                .commentBefore("") //
                .commentBefore(
                        "The full srcdeps.yaml reference can be found under https://github.com/srcdeps/srcdeps-core/tree/master/doc/srcdeps.yaml") //
                .commentBefore("") //
                .commentBefore("This file was generated by the following command:") //
                .commentBefore("") //
                .commentBefore("    mvn org.srcdeps.mvn:srcdeps-maven-plugin:init") //
                .commentBefore("") //
        ;

        ScmRepositoryIndex index = new ScmRepositoryIndex(session, repoSession, repositorySystem,
                projectBuilder, scms);
        log.debug("Going over [{}] reactor projects", reactorProjects.size());
        /* first add the reactor projects to seenGas so that they get ignored */
        for (MavenProject project : reactorProjects) {
            index.ignoreGav(project.getGroupId(), project.getArtifactId(), project.getVersion());
        }

        for (MavenProject project : reactorProjects) {

            final List<Dependency> dependencies = project.getDependencies();

            log.info("Project [{}] has [{}] dependencies", project.getArtifactId(),
                    dependencies == null ? 0 : dependencies.size());

            if (dependencies != null) {
                for (Dependency dependency : dependencies) {

                    final String g = dependency.getGroupId();
                    final String a = dependency.getArtifactId();
                    final String v = dependency.getVersion();
                    if (!"system".equals(dependency.getScope()) && gavSet.contains(g, a, v)) {
                        /* Ignore system scope */
                        index.addGav(g, a, v, failOnUnresolvable);
                    }
                }
            }

            final DependencyManagement dependencyManagement = project.getDependencyManagement();
            if (dependencyManagement != null) {
                final List<Dependency> managedDeps = dependencyManagement.getDependencies();
                if (managedDeps != null) {
                    for (Dependency dependency : managedDeps) {
                        final String g = dependency.getGroupId();
                        final String a = dependency.getArtifactId();
                        final String v = dependency.getVersion();
                        if (!"system".equals(dependency.getScope()) && gavSet.contains(g, a, v)) {
                            /* Ignore system scope */
                            index.addGav(g, a, v, false);
                        }
                    }
                }
            }

            MavenProject parent = project.getParent();
            if (parent != null) {
                final String g = parent.getGroupId();
                final String a = parent.getArtifactId();
                final String v = parent.getVersion();
                if (gavSet.contains(g, a, v)) {
                    index.addGav(g, a, v, failOnUnresolvable);
                }
            }
        }

        Map<String, Builder> repos = index.createSortedScmRepositoryMap();
        if (repos.size() == 0) {
            /* add some dummy repo so that we do not write an empty srcdeps.yaml file */
            ScmRepository.Builder dummyRepo = ScmRepository.builder() //
                    .commentBefore(
                            "FIXME: srcdeps-maven-plugin could not authomatically identify any SCM URLs for dependencies in this project") //
                    .commentBefore(
                            "       and has added this dummy repository only as a starting point for you to proceed manually") //
                    .id("org.my-group") //
                    .selector("org.my-group") //
                    .url("git:https://github.com/my-org/my-project.git") //
            ;
            repos.put(dummyRepo.getName(), dummyRepo);
        }

        config //
                .repositories(repos) //
                .accept(new OverrideVisitor(System.getProperties())) //
                .accept(new DefaultsAndInheritanceVisitor()) //
        ;

        final Path srcdepsYamlPath = multiModuleRootDir.toPath().resolve("srcdeps.yaml");
        try {
            YamlWriterConfiguration yamlWriterConfiguration = YamlWriterConfiguration.builder().build();
            try (Writer out = Files.newBufferedWriter(srcdepsYamlPath, Charset.forName(encoding))) {
                config.accept(new YamlWriterVisitor(out, yamlWriterConfiguration));
            }
        } catch (IOException e) {
            throw new MojoExecutionException(String.format("Could not write [%s]", srcdepsYamlPath), e);
        }
    }

}

From source file:org.switchyard.tools.ui.common.impl.SwitchYardProject.java

License:Open Source License

private String readRawVersionString(MavenProject mavenProject) {
    if (mavenProject.getDependencyManagement() != null) {
        for (Dependency dependency : mavenProject.getDependencyManagement().getDependencies()) {
            if (SWITCHYARD_CORE_GROUP_ID.equals(dependency.getGroupId())) {
                // using dependency management
                return null;
            }/* w w  w  .j a  v a  2 s . c om*/
        }
    }
    for (Dependency dependency : mavenProject.getOriginalModel().getDependencies()) {
        if (SWITCHYARD_CORE_GROUP_ID.equals(dependency.getGroupId())) {
            return dependency.getVersion();
        }
    }
    Build build = mavenProject.getOriginalModel().getBuild();
    if (build != null) {
        Plugin switchYardPlugin = build.getPluginsAsMap().get(SWITCHYARD_PLUGIN_KEY);
        if (switchYardPlugin != null) {
            return switchYardPlugin.getVersion();
        }
    }
    return UNKNOWN_VERSION_STRING;
}

From source file:org.universAAL.support.directives.checks.DependencyManagementCheckFix.java

License:Apache License

private boolean passRootCheck(MavenProject mavenProject2) {
    Map<DependencyID, String> versionMap = getActualVersions(mavenProject2);
    DependencyManagement dm = mavenProject2.getDependencyManagement();
    if (dm == null) // no DependencyManagement -> no fixing
        return true;
    List<Dependency> lod = dm.getDependencies();
    Map<DependencyID, String> lodVersionMap = new TreeMap<DependencyID, String>();

    // test if the version in DependencyManagement corresponds to the version of the actual artefact
    for (Dependency dependency : lod) {
        DependencyID depId = new DependencyID(dependency);
        String realVersion = versionMap.get(depId);
        lodVersionMap.put(depId, dependency.getVersion());
        getLog().debug("***1 ." + dependency.getGroupId() + ":" + dependency.getArtifactId() + " Real:\""
                + realVersion + "\" - Declared: \"" + dependency.getVersion() + "\"");
        if (dependency != null && !dependency.getVersion().equals(realVersion) && realVersion != null
                && !realVersion.isEmpty()) {
            getLog().debug("Marked as wrong.");
            toBeFixed.put(new DependencyID(dependency), realVersion);
        }//  w w  w . j  ava 2  s  .c  o m
    }

    // test that every real artefact has an entry in the DependencyManagement
    for (DependencyID key : versionMap.keySet()) {
        if (!lodVersionMap.containsKey(key)) {
            toBeFixed.put(key, versionMap.get(key));
            getLog().debug("***2 ." + key.getGID() + ":" + key.getAID() + " Not declared.");
            //System.out.println("***2 ." + key + ". - ." + versionMap.get(key) + ".");
        }
    }
    return toBeFixed.isEmpty();
}

From source file:org.universAAL.support.directives.checks.DependencyManagementCheckFix.java

License:Apache License

/**
 * @param mavenProject2//from  w w  w.j a v  a2 s  . c  o  m
 * @return
 */
private boolean includesPOMSubProjects(MavenProject mavenProject2) {
    DependencyManagement dm = mavenProject2.getDependencyManagement();
    if (dm != null) {
        for (Dependency d : dm.getDependencies()) {
            if (d.getType().equals("pom") || d.getType().equals("cfg")) {
                return true;
            }
        }
    }
    return false;
}

From source file:org.wso2.maven.p2.utils.DependencyResolver.java

License:Open Source License

/**
 * Resolve the given project dependencies into CarbonArtifact objects. Dependencies are categorized into
 * OSGI bundles and Carbon features./*  ww  w. ja va 2 s. co m*/
 *
 * @param project            MavenProject  Maven Project
 * @param repositorySystem   RepositorySystem object
 * @param remoteRepositories collection of remote repositories
 * @param localRepository    local repository representation
 * @return Return a {@code List<HashMap<String, CarbonArtifact>>}, 1st item being {@code HashMap<String,
 * CarbonArtifact>} containing osgi bundles specified as dependencies and 2nd item being {@code HashMap<String,
 * CarbonArtifact>} containing carbon features specified as dependencies.
 * @throws IOException throws when unable to retrieve a given maven artifact
 */
public static List<HashMap<String, CarbonArtifact>> getDependenciesForProject(MavenProject project,
        RepositorySystem repositorySystem, List<ArtifactRepository> remoteRepositories,
        ArtifactRepository localRepository) throws IOException {

    List<HashMap<String, CarbonArtifact>> results = new ArrayList<>();
    HashMap<String, CarbonArtifact> bundles = new HashMap<>();
    HashMap<String, CarbonArtifact> features = new HashMap<>();
    results.add(bundles);
    results.add(features);
    List<Dependency> dependencies = project.getDependencies();

    DependencyManagement dependencyManagement = project.getDependencyManagement();
    if (dependencyManagement != null) {
        dependencies.addAll(dependencyManagement.getDependencies());
    }
    for (Dependency dependency : dependencies) {
        CarbonArtifact carbonArtifact = new CarbonArtifact();
        carbonArtifact.setGroupId(dependency.getGroupId());
        carbonArtifact.setArtifactId(dependency.getArtifactId());
        carbonArtifact.setVersion(dependency.getVersion());
        carbonArtifact.setType(dependency.getType());
        Artifact mavenArtifact = MavenUtils.getResolvedArtifact(carbonArtifact, repositorySystem,
                remoteRepositories, localRepository);
        carbonArtifact.setArtifact(mavenArtifact);
        String key;
        if (carbonArtifact.getType().equals("jar")) {
            if (resolveOSGIInfo(carbonArtifact)) {
                key = carbonArtifact.getSymbolicName() + "_" + carbonArtifact.getBundleVersion();
                bundles.put(key, carbonArtifact);
            }
        } else {
            key = carbonArtifact.getArtifactId() + "_" + carbonArtifact.getVersion();
            features.put(key, carbonArtifact);
        }
    }
    return results;
}

From source file:se.jguru.nazgul.tools.codestyle.enforcer.rules.ProjectType.java

License:Apache License

/**
 * Acquires the ProjectType instance for the provided MavenProject,
 * or throws an IllegalArgumentException holding an exception message
 * if a ProjectType could not be found for the provided MavenProject.
 *
 * @param project The MavenProject to classify.
 * @return The corresponding ProjectType.
 * @throws IllegalArgumentException if the given project could not be mapped to a [single] ProjectType.
 *                                  The exception message holds
 *//*from  ww  w. j a v  a 2 s.co m*/
public static ProjectType getProjectType(final MavenProject project) throws IllegalArgumentException {

    Validate.notNull(project, "Cannot handle null project argument.");

    final List<ProjectType> matches = findCandidates(project.getGroupId(), project.getArtifactId(),
            project.getPackaging(), "Incorrect project type definition for [" + project.getGroupId() + " :: "
                    + project.getArtifactId() + " :: " + project.getVersion() + "]: ");

    // Validate the internal requirements for the two different pom projects.
    final ProjectType toReturn = matches.get(0);
    switch (toReturn) {
    case PARENT:
    case ASSEMBLY:
        // This project should not contain modules.
        if (project.getModules() != null && !project.getModules().isEmpty()) {
            throw new IllegalArgumentException(
                    ProjectType.PARENT + " projects may not contain module definitions. "
                            + "(Modules are reserved for reactor projects).");
        }
        break;

    case REACTOR:
        // This project not contain dependency definitions.
        final List<?> dependencies = project.getDependencies();
        if (dependencies != null && !dependencies.isEmpty()) {
            throw new IllegalArgumentException(
                    ProjectType.REACTOR + " projects may not contain dependency definitions."
                            + " (Dependencies should be defined within parent projects).");
        }

        final DependencyManagement dependencyManagement = project.getDependencyManagement();
        if (dependencyManagement != null) {

            // Dig out all dependency management-defined dependencies.
            final List<Dependency> templateDependencies = dependencyManagement.getDependencies();
            if (templateDependencies != null && !templateDependencies.isEmpty()) {
                throw new IllegalArgumentException(
                        ProjectType.REACTOR + " projects may not contain dependency [management] definitions."
                                + " (Dependencies should be defined within parent projects).");
            }
        }
        break;

    // No action should be taken for other project types.
    default:
        break;
    }

    // All done.
    return toReturn;
}