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

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

Introduction

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

Prototype

public String getArtifactId() 

Source Link

Usage

From source file:org.codehaus.mojo.versions.DisplayPluginUpdatesMojo.java

License:Apache License

/**
 * @throws MojoExecutionException when things go wrong
 * @throws MojoFailureException   when things go wrong in a very bad way
 * @see AbstractVersionsUpdaterMojo#execute()
 * @since 1.0-alpha-1//from   ww  w . j a v a2 s.  co  m
 */
public void execute() throws MojoExecutionException, MojoFailureException {
    logInit();
    Set<String> pluginsWithVersionsSpecified;
    try {
        pluginsWithVersionsSpecified = findPluginsWithVersionsSpecified(getProject());
    } catch (XMLStreamException e) {
        throw new MojoExecutionException(e.getMessage(), e);
    } catch (IOException e) {
        throw new MojoExecutionException(e.getMessage(), e);
    }

    Map<String, String> superPomPluginManagement = getSuperPomPluginManagement();
    getLog().debug("superPom plugins = " + superPomPluginManagement);

    Map<String, String> parentPluginManagement = new HashMap<String, String>();
    Map<String, String> parentBuildPlugins = new HashMap<String, String>();
    Map<String, String> parentReportPlugins = new HashMap<String, String>();

    List<MavenProject> parents = getParentProjects(getProject());

    for (MavenProject parentProject : parents) {
        getLog().debug("Processing parent: " + parentProject.getGroupId() + ":" + parentProject.getArtifactId()
                + ":" + parentProject.getVersion() + " -> " + parentProject.getFile());

        StringWriter writer = new StringWriter();
        boolean havePom = false;
        Model interpolatedModel;
        try {
            Model originalModel = parentProject.getOriginalModel();
            if (originalModel == null) {
                getLog().warn("project.getOriginalModel()==null for  " + parentProject.getGroupId() + ":"
                        + parentProject.getArtifactId() + ":" + parentProject.getVersion()
                        + " is null, substituting project.getModel()");
                originalModel = parentProject.getModel();
            }
            try {
                new MavenXpp3Writer().write(writer, originalModel);
                writer.close();
                havePom = true;
            } catch (IOException e) {
                // ignore
            }
            interpolatedModel = modelInterpolator.interpolate(originalModel, null,
                    new DefaultProjectBuilderConfiguration()
                            .setExecutionProperties(getProject().getProperties()),
                    false);
        } catch (ModelInterpolationException e) {
            throw new MojoExecutionException(e.getMessage(), e);
        }
        if (havePom) {
            try {
                Set<String> withVersionSpecified = findPluginsWithVersionsSpecified(
                        new StringBuilder(writer.toString()));
                Map<String, String> map = getPluginManagement(interpolatedModel);
                map.keySet().retainAll(withVersionSpecified);
                parentPluginManagement.putAll(map);

                map = getBuildPlugins(interpolatedModel, true);
                map.keySet().retainAll(withVersionSpecified);
                parentPluginManagement.putAll(map);

                map = getReportPlugins(interpolatedModel, true);
                map.keySet().retainAll(withVersionSpecified);
                parentPluginManagement.putAll(map);
            } catch (IOException e) {
                throw new MojoExecutionException(e.getMessage(), e);
            } catch (XMLStreamException e) {
                throw new MojoExecutionException(e.getMessage(), e);
            }
        } else {
            parentPluginManagement.putAll(getPluginManagement(interpolatedModel));
            parentPluginManagement.putAll(getBuildPlugins(interpolatedModel, true));
            parentPluginManagement.putAll(getReportPlugins(interpolatedModel, true));
        }
    }

    Set<Plugin> plugins = getProjectPlugins(superPomPluginManagement, parentPluginManagement,
            parentBuildPlugins, parentReportPlugins, pluginsWithVersionsSpecified);
    List<String> updates = new ArrayList<String>();
    List<String> lockdowns = new ArrayList<String>();
    Map<ArtifactVersion, Map<String, String>> upgrades = new TreeMap<ArtifactVersion, Map<String, String>>(
            new MavenVersionComparator());
    ArtifactVersion curMavenVersion = runtimeInformation.getApplicationVersion();
    ArtifactVersion specMavenVersion = new DefaultArtifactVersion(getRequiredMavenVersion(getProject(), "2.0"));
    ArtifactVersion minMavenVersion = null;
    boolean superPomDrivingMinVersion = false;
    Iterator<Plugin> i = plugins.iterator();
    while (i.hasNext()) {
        Object plugin = i.next();
        String groupId = getPluginGroupId(plugin);
        String artifactId = getPluginArtifactId(plugin);
        String version = getPluginVersion(plugin);
        String coords = ArtifactUtils.versionlessKey(groupId, artifactId);

        if (version == null) {
            version = parentPluginManagement.get(coords);
        }
        getLog().debug(new StringBuilder().append("Checking ").append(coords).append(" for updates newer than ")
                .append(version).toString());
        String effectiveVersion = version;

        VersionRange versionRange;
        boolean unspecified = version == null;
        try {
            versionRange = unspecified ? VersionRange.createFromVersionSpec("[0,)")
                    : VersionRange.createFromVersionSpec(version);
        } catch (InvalidVersionSpecificationException e) {
            throw new MojoExecutionException("Invalid version range specification: " + version, e);
        }

        Artifact artifact = artifactFactory.createPluginArtifact(groupId, artifactId, versionRange);

        ArtifactVersion artifactVersion = null;
        try {
            // now we want to find the newest version that is compatible with the invoking version of Maven
            ArtifactVersions artifactVersions = getHelper().lookupArtifactVersions(artifact, true);
            ArtifactVersion[] newerVersions = artifactVersions
                    .getVersions(Boolean.TRUE.equals(this.allowSnapshots));
            ArtifactVersion minRequires = null;
            for (int j = newerVersions.length - 1; j >= 0; j--) {
                Artifact probe = artifactFactory.createDependencyArtifact(groupId, artifactId,
                        VersionRange.createFromVersion(newerVersions[j].toString()), "pom", null, "runtime");
                try {
                    getHelper().resolveArtifact(probe, true);
                    MavenProject mavenProject = projectBuilder.buildFromRepository(probe,
                            remotePluginRepositories, localRepository);
                    ArtifactVersion requires = new DefaultArtifactVersion(
                            getRequiredMavenVersion(mavenProject, "2.0"));
                    if (specMavenVersion.compareTo(requires) >= 0 && artifactVersion == null) {
                        artifactVersion = newerVersions[j];
                    }
                    if (effectiveVersion == null && curMavenVersion.compareTo(requires) >= 0) {
                        // version was unspecified, current version of maven thinks it should use this
                        effectiveVersion = newerVersions[j].toString();
                    }
                    if (artifactVersion != null && effectiveVersion != null) {
                        // no need to look at any older versions.
                        break;
                    }
                    if (minRequires == null || minRequires.compareTo(requires) > 0) {
                        Map<String, String> upgradePlugins = upgrades.get(requires);
                        if (upgradePlugins == null) {
                            upgrades.put(requires, upgradePlugins = new LinkedHashMap<String, String>());
                        }
                        String upgradePluginKey = compactKey(groupId, artifactId);
                        if (!upgradePlugins.containsKey(upgradePluginKey)) {
                            upgradePlugins.put(upgradePluginKey, newerVersions[j].toString());
                        }
                        minRequires = requires;
                    }
                } catch (ArtifactResolutionException e) {
                    // ignore bad version
                } catch (ArtifactNotFoundException e) {
                    // ignore bad version
                } catch (ProjectBuildingException e) {
                    // ignore bad version
                }
            }
            if (effectiveVersion != null) {
                VersionRange currentVersionRange = VersionRange.createFromVersion(effectiveVersion);
                Artifact probe = artifactFactory.createDependencyArtifact(groupId, artifactId,
                        currentVersionRange, "pom", null, "runtime");
                try {
                    getHelper().resolveArtifact(probe, true);
                    MavenProject mavenProject = projectBuilder.buildFromRepository(probe,
                            remotePluginRepositories, localRepository);
                    ArtifactVersion requires = new DefaultArtifactVersion(
                            getRequiredMavenVersion(mavenProject, "2.0"));
                    if (minMavenVersion == null || minMavenVersion.compareTo(requires) < 0) {
                        minMavenVersion = requires;
                    }
                } catch (ArtifactResolutionException e) {
                    // ignore bad version
                } catch (ArtifactNotFoundException e) {
                    // ignore bad version
                } catch (ProjectBuildingException e) {
                    // ignore bad version
                }
            }
        } catch (ArtifactMetadataRetrievalException e) {
            throw new MojoExecutionException(e.getMessage(), e);
        }

        String newVersion;

        if (version == null && pluginsWithVersionsSpecified.contains(coords)) {
            // Hack ALERT!
            //
            // All this should be re-written in a less "pom is xml" way... but it'll
            // work for now :-(
            //
            // we have removed the version information, as it was the same as from
            // the super-pom... but it actually was specified.
            version = artifactVersion != null ? artifactVersion.toString() : null;
        }

        getLog().debug("[" + coords + "].version=" + version);
        getLog().debug("[" + coords + "].artifactVersion=" + artifactVersion);
        getLog().debug("[" + coords + "].effectiveVersion=" + effectiveVersion);
        getLog().debug("[" + coords + "].specified=" + pluginsWithVersionsSpecified.contains(coords));
        if (version == null || !pluginsWithVersionsSpecified.contains(coords)) {
            version = (String) superPomPluginManagement.get(ArtifactUtils.versionlessKey(artifact));
            getLog().debug("[" + coords + "].superPom.version=" + version);

            newVersion = artifactVersion != null ? artifactVersion.toString()
                    : (version != null ? version : (effectiveVersion != null ? effectiveVersion : "(unknown)"));
            StringBuilder buf = new StringBuilder(compactKey(groupId, artifactId));
            buf.append(' ');
            int padding = WARN_PAD_SIZE - newVersion.length() - (version != null ? FROM_SUPER_POM.length() : 0);
            while (buf.length() < padding) {
                buf.append('.');
            }
            buf.append(' ');
            if (version != null) {
                buf.append(FROM_SUPER_POM);
                superPomDrivingMinVersion = true;
            }
            buf.append(newVersion);
            lockdowns.add(buf.toString());
        } else if (artifactVersion != null) {
            newVersion = artifactVersion.toString();
        } else {
            newVersion = null;
        }
        if (version != null && artifactVersion != null && newVersion != null && effectiveVersion != null
                && new DefaultArtifactVersion(effectiveVersion)
                        .compareTo(new DefaultArtifactVersion(newVersion)) < 0) {
            StringBuilder buf = new StringBuilder(compactKey(groupId, artifactId));
            buf.append(' ');
            int padding = INFO_PAD_SIZE - version.length() - newVersion.length() - 4;
            while (buf.length() < padding) {
                buf.append('.');
            }
            buf.append(' ');
            buf.append(effectiveVersion);
            buf.append(" -> ");
            buf.append(newVersion);
            updates.add(buf.toString());
        }
    }
    logLine(false, "");
    if (updates.isEmpty()) {
        logLine(false, "All plugins with a version specified are using the latest versions.");
    } else {
        logLine(false, "The following plugin updates are available:");
        for (String update : updates) {
            logLine(false, "  " + update);
        }
    }
    logLine(false, "");
    if (lockdowns.isEmpty()) {
        logLine(false, "All plugins have a version specified.");
    } else {
        getLog().warn("The following plugins do not have their version specified:");
        for (String lockdown : lockdowns) {
            getLog().warn("  " + lockdown);
        }
    }
    logLine(false, "");
    boolean noMavenMinVersion = getRequiredMavenVersion(getProject(), null) == null;
    boolean noExplicitMavenMinVersion = getProject().getPrerequisites() == null
            || getProject().getPrerequisites().getMaven() == null;
    if (noMavenMinVersion) {
        getLog().warn("Project does not define minimum Maven version, default is: 2.0");
    } else if (noExplicitMavenMinVersion) {
        logLine(false, "Project inherits minimum Maven version as: " + specMavenVersion);
    } else {
        ArtifactVersion explicitMavenVersion = new DefaultArtifactVersion(
                getProject().getPrerequisites().getMaven());
        if (explicitMavenVersion.compareTo(specMavenVersion) < 0) {
            logLine(true, "Project's effective minimum Maven (from parent) is: " + specMavenVersion);
            logLine(true, "Project defines minimum Maven version as: " + explicitMavenVersion);
        } else {
            logLine(false, "Project defines minimum Maven version as: " + specMavenVersion);
        }
    }
    logLine(false, "Plugins require minimum Maven version of: " + minMavenVersion);
    if (superPomDrivingMinVersion) {
        logLine(false, "Note: the super-pom from Maven " + curMavenVersion + " defines some of the plugin");
        logLine(false, "      versions and may be influencing the plugins required minimum Maven");
        logLine(false, "      version.");
    }
    logLine(false, "");
    if ("maven-plugin".equals(getProject().getPackaging())) {
        if (noMavenMinVersion) {
            getLog().warn(
                    "Project (which is a Maven Plugin) does not define required minimum version of Maven.");
            getLog().warn("Update the pom.xml to contain");
            getLog().warn("    <prerequisites>");
            getLog().warn("      <maven><!-- minimum version of Maven that the plugin works with --></maven>");
            getLog().warn("    </prerequisites>");
            getLog().warn("To build this plugin you need at least Maven " + minMavenVersion);
            getLog().warn(
                    "A Maven Enforcer rule can be used to enforce this if you have not already set one up");
        } else if (minMavenVersion != null && specMavenVersion.compareTo(minMavenVersion) < 0) {
            getLog().warn("Project (which is a Maven Plugin) targets Maven " + specMavenVersion + " or newer");
            getLog().warn("but requires Maven " + minMavenVersion + " or newer to build.");
            getLog().warn("This may or may not be a problem. A Maven Enforcer rule can help ");
            getLog().warn("enforce that the correct version of Maven is used to build this plugin.");
        } else {
            logLine(false, "No plugins require a newer version of Maven than specified by the pom.");
        }
    } else {
        if (noMavenMinVersion) {
            logLine(true, "Project does not define required minimum version of Maven.");
            logLine(true, "Update the pom.xml to contain");
            logLine(true, "    <prerequisites>");
            logLine(true, "      <maven>" + minMavenVersion + "</maven>");
            logLine(true, "    </prerequisites>");
        } else if (minMavenVersion != null && specMavenVersion.compareTo(minMavenVersion) < 0) {
            logLine(true, "Project requires an incorrect minimum version of Maven.");
            logLine(true, "Either change plugin versions to those compatible with " + specMavenVersion);
            logLine(true, "or update the pom.xml to contain");
            logLine(true, "    <prerequisites>");
            logLine(true, "      <maven>" + minMavenVersion + "</maven>");
            logLine(true, "    </prerequisites>");
        } else {
            logLine(false, "No plugins require a newer version of Maven than specified by the pom.");
        }
    }
    for (Map.Entry<ArtifactVersion, Map<String, String>> mavenUpgrade : upgrades.entrySet()) {
        ArtifactVersion mavenUpgradeVersion = (ArtifactVersion) mavenUpgrade.getKey();
        Map<String, String> upgradePlugins = mavenUpgrade.getValue();
        if (upgradePlugins.isEmpty() || specMavenVersion.compareTo(mavenUpgradeVersion) >= 0) {
            continue;
        }
        logLine(false, "");
        logLine(false, "Require Maven " + mavenUpgradeVersion + " to use the following plugin updates:");
        for (Map.Entry<String, String> entry : upgradePlugins.entrySet()) {
            StringBuilder buf = new StringBuilder("  ");
            buf.append(entry.getKey());
            buf.append(' ');
            String s = entry.getValue();
            int padding = INFO_PAD_SIZE - s.length() + 2;
            while (buf.length() < padding) {
                buf.append('.');
            }
            buf.append(' ');
            buf.append(s);
            logLine(false, buf.toString());
        }
    }
    logLine(false, "");
}

From source file:org.codehaus.mojo.versions.UseReactorMojo.java

License:Apache License

private void useReactor(ModifiedPomXMLEventReader pom, Collection<Dependency> dependencies)
        throws XMLStreamException, MojoExecutionException, ArtifactMetadataRetrievalException {

    for (Object dependency : dependencies) {
        Dependency dep = (Dependency) dependency;

        Artifact artifact = this.toArtifact(dep);
        if (!isIncluded(artifact)) {
            continue;
        }/*from  w  w  w . j  a  v a 2 s  .  co m*/

        for (Object reactorProject : reactorProjects) {
            MavenProject project = (MavenProject) reactorProject;
            if (StringUtils.equals(project.getGroupId(), dep.getGroupId())
                    && StringUtils.equals(project.getArtifactId(), dep.getArtifactId())
                    && !StringUtils.equals(project.getVersion(), dep.getVersion())) {
                if (PomHelper.setDependencyVersion(pom, dep.getGroupId(), dep.getArtifactId(), dep.getVersion(),
                        project.getVersion())) {
                    getLog().info("Updated " + toString(dep) + " to version " + project.getVersion());
                }
                break;
            }
        }
    }
}

From source file:org.codehaus.mojo.webstart.util.DefaultArtifactUtil.java

License:Apache License

/**
 * {@inheritDoc}/*from   ww  w .j  av a 2s  . co  m*/
 */
public MavenProject resolveFromReactor(Artifact artifact, MavenProject mp, List<MavenProject> reactorProjects)
        throws MojoExecutionException {
    MavenProject result = null;

    String artifactId = artifact.getArtifactId();
    String groupId = artifact.getGroupId();

    if (CollectionUtils.isNotEmpty(reactorProjects)) {
        for (MavenProject reactorProject : reactorProjects) {
            if (reactorProject.getArtifactId().equals(artifactId)
                    && reactorProject.getGroupId().equals(groupId)) {
                result = reactorProject;
                break;
            }
        }
    }

    return result;
}

From source file:org.commonjava.emb.boot.embed.EMBEmbedder.java

License:Apache License

public int formatErrorOutput(final EMBExecutionRequest request, final MavenExecutionResult result) {
    if (result.hasExceptions()) {
        final ExceptionHandler handler = new DefaultExceptionHandler();

        final Map<String, String> references = new LinkedHashMap<String, String>();

        MavenProject project = null;

        for (final Throwable exception : result.getExceptions()) {
            final ExceptionSummary summary = handler.handleException(exception);

            logSummary(summary, references, "", shouldShowErrors);

            if (project == null && exception instanceof LifecycleExecutionException) {
                project = ((LifecycleExecutionException) exception).getProject();
            }/*from w ww .j ava 2 s.c  o m*/
        }

        logger.error("");

        if (!shouldShowErrors) {
            logger.error("To see the full stack trace of the errors, re-run Maven with the -e switch.");
        }
        if (!logger.isDebugEnabled()) {
            logger.error("Re-run Maven using the -X switch to enable full debug logging.");
        }

        if (!references.isEmpty()) {
            logger.error("");
            logger.error("For more information about the errors and possible solutions"
                    + ", please read the following articles:");

            for (final Map.Entry<String, String> entry : references.entrySet()) {
                logger.error(entry.getValue() + " " + entry.getKey());
            }
        }

        if (project != null && !project.equals(result.getTopologicallySortedProjects().get(0))) {
            logger.error("");
            logger.error("After correcting the problems, you can resume the build with the command");
            logger.error("  mvn <goals> -rf :" + project.getArtifactId());
        }

        if (MavenExecutionRequest.REACTOR_FAIL_NEVER.equals(request.getReactorFailureBehavior())) {
            logger.info("Build failures were ignored.");

            return 0;
        } else {
            return 1;
        }
    } else {
        return 0;
    }
}

From source file:org.commonjava.emb.boot.log.EventLogger.java

License:Apache License

private void append(final StringBuilder buffer, final MavenProject project) {
    buffer.append(" @ ").append(project.getArtifactId());
}

From source file:org.commonjava.emb.project.graph.DepGraphRootNode.java

License:Open Source License

public DepGraphRootNode(final DependencyNode node, final MavenProject project) {
    super(node, ArtifactUtils.key(project.getGroupId(), project.getArtifactId(), project.getVersion()), true);
    this.project = project;
}

From source file:org.commonjava.emb.project.ProjectLoader.java

License:Apache License

private void addProjects(final ProjectToolsSession session, final List<MavenProject> projects) {
    final DependencyGraph depGraph = session.getDependencyGraph();
    for (final MavenProject project : projects) {
        final LinkedList<Artifact> parentage = new LinkedList<Artifact>();
        MavenProject parent = project;//ww w . ja  v  a2 s . c  o m
        while (parent != null) {
            final org.apache.maven.artifact.Artifact pomArtifact = mavenRepositorySystem
                    .createArtifact(project.getGroupId(), project.getArtifactId(), project.getVersion(), "pom");

            final Artifact aetherPomArtifact = RepositoryUtils.toArtifact(pomArtifact);

            parentage.addFirst(aetherPomArtifact);

            parent = parent.getParent();
        }

        Artifact current = parentage.removeFirst();
        while (!parentage.isEmpty()) {
            final Artifact next = parentage.getFirst();

            // This is WEIRD, but the parent POM is actually a dependency of the current one,
            // since it's required in order to build the current project...
            if (LOGGER.isDebugEnabled()) {
                LOGGER.debug("Marking parent POM: " + current + " as dependency of POM: " + next);
            }
            depGraph.addDependency(next, current, true, true);

            if (!parentage.isEmpty()) {
                current = parentage.removeFirst();
            }
        }
    }
}

From source file:org.commonjava.emb.project.SimpleProjectToolsSession.java

License:Apache License

/**
 * {@inheritDoc}// w w w .  j  a v a 2 s .co  m
 * 
 * @see org.commonjava.emb.project.ProjectToolsSession#addReactorProject(org.apache.maven.project.MavenProject)
 */
@Override
public synchronized ProjectToolsSession addReactorProject(final MavenProject project) {
    final String id = key(project.getGroupId(), project.getArtifactId(), project.getVersion());
    if (!reactorProjects.containsKey(id)) {
        reactorProjects.put(id, project);
    }

    return this;
}

From source file:org.commonjava.maven.ext.core.util.IdUtils.java

License:Apache License

public static String ga(final MavenProject project) {
    return ga(project.getGroupId(), project.getArtifactId());
}

From source file:org.commonjava.maven.ext.manip.util.IdUtils.java

License:Open Source License

public static String gav(final MavenProject project) {
    return String.format("%s:%s:%s", project.getGroupId(), project.getArtifactId(), project.getVersion());
}