
org.apache.maven.plugin.plugin.metadata.AddPluginArtifactMetadataMojo Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of maven-plugin-plugin Show documentation
Show all versions of maven-plugin-plugin Show documentation
The Plugin Plugin is used to create a Maven plugin descriptor for any Mojo's found in the source tree,
to include in the JAR. It is also used to generate Xdoc files for the Mojos as well as for updating the
plugin registry, the artifact metadata and a generic help goal.
package org.apache.maven.plugin.plugin.metadata;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
import org.apache.maven.artifact.repository.metadata.GroupRepositoryMetadata;
import org.apache.maven.artifact.repository.metadata.Versioning;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.descriptor.PluginDescriptor;
import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProject;
/**
* Inject any plugin-specific
* artifact metadata to the project's
* artifact, for subsequent installation and deployment.
* It is used:
*
* - to add the
latest
metadata (which is plugin-specific) for shipping alongside the plugin's
* artifact
* - to define plugin mapping in the group
*
*
* @see ArtifactRepositoryMetadata
* @see GroupRepositoryMetadata
* @version $Id: AddPluginArtifactMetadataMojo.java 1642372 2014-11-28 22:41:25Z hboutemy $
* @since 2.0
*/
@Mojo( name = "addPluginArtifactMetadata", defaultPhase = LifecyclePhase.PACKAGE, threadSafe = true )
public class AddPluginArtifactMetadataMojo
extends AbstractMojo
{
/**
* The project artifact, which should have the latest
metadata added to it.
*/
@Parameter( defaultValue = "${project}", readonly = true )
private MavenProject project;
/**
* The prefix for the plugin goal.
*/
@Parameter
private String goalPrefix;
/**
* Set this to "true" to skip invoking any goals or reports of the plugin.
*
* @since 2.8
*/
@Parameter( defaultValue = "false", property = "maven.plugin.skip" )
private boolean skip;
/** {@inheritDoc} */
public void execute()
throws MojoExecutionException
{
if ( skip )
{
getLog().warn( "Execution skipped" );
return;
}
Artifact projectArtifact = project.getArtifact();
Versioning versioning = new Versioning();
versioning.setLatest( projectArtifact.getVersion() );
versioning.updateTimestamp();
ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata( projectArtifact, versioning );
projectArtifact.addMetadata( metadata );
GroupRepositoryMetadata groupMetadata = new GroupRepositoryMetadata( project.getGroupId() );
groupMetadata.addPluginMapping( getGoalPrefix(), project.getArtifactId(), project.getName() );
projectArtifact.addMetadata( groupMetadata );
}
/**
* @return the goal prefix parameter or the goal prefix from the Plugin artifactId.
*/
private String getGoalPrefix()
{
if ( goalPrefix == null )
{
goalPrefix = PluginDescriptor.getGoalPrefixFromArtifactId( project.getArtifactId() );
}
return goalPrefix;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy