Search in sources :

Example 1 with DefaultPluginVersionRequest

use of org.apache.maven.plugin.version.DefaultPluginVersionRequest in project intellij-plugins by JetBrains.

the class Maven method createMojoExecution.

public MojoExecution createMojoExecution(Plugin plugin, String goal, MavenProject project) throws Exception {
    if (plugin.getVersion() == null) {
        plugin.setVersion(plexusContainer.lookup(PluginVersionResolver.class).resolve(new DefaultPluginVersionRequest(plugin, session)).getVersion());
    }
    MojoDescriptor mojoDescriptor = pluginManager.getMojoDescriptor(plugin, goal, project.getRemotePluginRepositories(), session.getRepositorySession());
    List<PluginExecution> executions = plugin.getExecutions();
    MojoExecution mojoExecution = new MojoExecution(mojoDescriptor, executions.isEmpty() ? null : executions.get(executions.size() - 1).getId(), MojoExecution.Source.CLI);
    plexusContainer.lookup(LifecycleExecutionPlanCalculator.class).setupMojoExecution(session, project, mojoExecution);
    return mojoExecution;
}
Also used : PluginExecution(org.apache.maven.model.PluginExecution) MojoDescriptor(org.apache.maven.plugin.descriptor.MojoDescriptor) PluginVersionResolver(org.apache.maven.plugin.version.PluginVersionResolver) MojoExecution(org.apache.maven.plugin.MojoExecution) DefaultPluginVersionRequest(org.apache.maven.plugin.version.DefaultPluginVersionRequest) LifecycleExecutionPlanCalculator(org.apache.maven.lifecycle.internal.LifecycleExecutionPlanCalculator)

Example 2 with DefaultPluginVersionRequest

use of org.apache.maven.plugin.version.DefaultPluginVersionRequest in project maven-plugins by apache.

the class DescribeMojo method lookupPluginDescriptor.

/**
     * Method for retrieving the description of the plugin
     *
     * @param pi holds information of the plugin whose description is to be retrieved
     * @return a PluginDescriptor where the plugin description is to be retrieved
     * @throws MojoExecutionException if the plugin could not be verify
     * @throws MojoFailureException   if groupId or artifactId is empty
     */
private PluginDescriptor lookupPluginDescriptor(PluginInfo pi) throws MojoExecutionException, MojoFailureException {
    Plugin forLookup = null;
    if (StringUtils.isNotEmpty(pi.getPrefix())) {
        try {
            forLookup = mojoDescriptorCreator.findPluginForPrefix(pi.getPrefix(), session);
        } catch (NoPluginFoundForPrefixException e) {
            throw new MojoExecutionException("Unable to find the plugin with prefix: " + pi.getPrefix(), e);
        }
    } else if (StringUtils.isNotEmpty(pi.getGroupId()) && StringUtils.isNotEmpty(pi.getArtifactId())) {
        forLookup = new Plugin();
        forLookup.setGroupId(pi.getGroupId());
        forLookup.setArtifactId(pi.getArtifactId());
    }
    if (forLookup == null) {
        String msg = "You must specify either: both 'groupId' and 'artifactId' parameters OR a 'plugin' parameter" + " OR a 'cmd' parameter. For instance:" + LS + "  # mvn help:describe -Dcmd=install" + LS + "or" + LS + "  # mvn help:describe -Dcmd=help:describe" + LS + "or" + LS + "  # mvn help:describe -Dplugin=org.apache.maven.plugins:maven-help-plugin" + LS + "or" + LS + "  # mvn help:describe -DgroupId=org.apache.maven.plugins -DartifactId=maven-help-plugin" + LS + LS + "Try 'mvn help:help -Ddetail=true' for more information.";
        throw new MojoFailureException(msg);
    }
    if (StringUtils.isNotEmpty(pi.getVersion())) {
        forLookup.setVersion(pi.getVersion());
    } else {
        try {
            DefaultPluginVersionRequest versionRequest = new DefaultPluginVersionRequest(forLookup, session);
            versionRequest.setPom(project.getModel());
            PluginVersionResult versionResult = pluginVersionResolver.resolve(versionRequest);
            forLookup.setVersion(versionResult.getVersion());
        } catch (PluginVersionResolutionException e) {
            throw new MojoExecutionException("Unable to resolve the version of the plugin with prefix: " + pi.getPrefix(), e);
        }
    }
    try {
        return pluginManager.getPluginDescriptor(forLookup, session);
    } catch (Exception e) {
        throw new MojoExecutionException("Error retrieving plugin descriptor for:" + LS + LS + "groupId: '" + groupId + "'" + LS + "artifactId: '" + artifactId + "'" + LS + "version: '" + version + "'" + LS + LS, e);
    }
}
Also used : NoPluginFoundForPrefixException(org.apache.maven.plugin.prefix.NoPluginFoundForPrefixException) PluginVersionResolutionException(org.apache.maven.plugin.version.PluginVersionResolutionException) MojoExecutionException(org.apache.maven.plugin.MojoExecutionException) MojoFailureException(org.apache.maven.plugin.MojoFailureException) PluginVersionResult(org.apache.maven.plugin.version.PluginVersionResult) DefaultPluginVersionRequest(org.apache.maven.plugin.version.DefaultPluginVersionRequest) PluginVersionResolutionException(org.apache.maven.plugin.version.PluginVersionResolutionException) NoPluginFoundForPrefixException(org.apache.maven.plugin.prefix.NoPluginFoundForPrefixException) IOException(java.io.IOException) MojoExecutionException(org.apache.maven.plugin.MojoExecutionException) InvocationTargetException(java.lang.reflect.InvocationTargetException) MojoFailureException(org.apache.maven.plugin.MojoFailureException) Plugin(org.apache.maven.model.Plugin)

Aggregations

DefaultPluginVersionRequest (org.apache.maven.plugin.version.DefaultPluginVersionRequest)2 IOException (java.io.IOException)1 InvocationTargetException (java.lang.reflect.InvocationTargetException)1 LifecycleExecutionPlanCalculator (org.apache.maven.lifecycle.internal.LifecycleExecutionPlanCalculator)1 Plugin (org.apache.maven.model.Plugin)1 PluginExecution (org.apache.maven.model.PluginExecution)1 MojoExecution (org.apache.maven.plugin.MojoExecution)1 MojoExecutionException (org.apache.maven.plugin.MojoExecutionException)1 MojoFailureException (org.apache.maven.plugin.MojoFailureException)1 MojoDescriptor (org.apache.maven.plugin.descriptor.MojoDescriptor)1 NoPluginFoundForPrefixException (org.apache.maven.plugin.prefix.NoPluginFoundForPrefixException)1 PluginVersionResolutionException (org.apache.maven.plugin.version.PluginVersionResolutionException)1 PluginVersionResolver (org.apache.maven.plugin.version.PluginVersionResolver)1 PluginVersionResult (org.apache.maven.plugin.version.PluginVersionResult)1