Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (102)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (322)
Collections:
Other Resources:
maven-plugin-api-3.8.6.jar - Plugin API Module
maven-plugin-api-3.8.6.jar is the JAR file for Apache Maven 3.8.6 Plugin API module.
Apache Maven is a software project management and comprehension tool.
JAR File Size and Download Location:
File: 46967 06-06-2022 16:16 lib/maven-plugin-api-3.8.6.jar Download: Apache Maven Website
✍: FYIcenter.com
⏎ org/apache/maven/plugin/descriptor/PluginDescriptor.java
package org.apache.maven.plugin.descriptor;
/*
* 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.ArtifactUtils;
import org.apache.maven.model.Plugin;
import org.apache.maven.plugin.lifecycle.Lifecycle;
import org.apache.maven.plugin.lifecycle.LifecycleConfiguration;
import org.apache.maven.plugin.lifecycle.io.xpp3.LifecycleMappingsXpp3Reader;
import org.codehaus.plexus.classworlds.realm.ClassRealm;
import org.codehaus.plexus.component.repository.ComponentSetDescriptor;
import org.codehaus.plexus.util.ReaderFactory;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* @author Jason van Zyl
*/
public class PluginDescriptor
extends ComponentSetDescriptor
implements Cloneable
{
private static final String LIFECYCLE_DESCRIPTOR = "META-INF/maven/lifecycle.xml";
private String groupId;
private String artifactId;
private String version;
private String goalPrefix;
private String source;
private boolean inheritedByDefault = true;
private List<Artifact> artifacts;
private ClassRealm classRealm;
// calculated on-demand.
private Map<String, Artifact> artifactMap;
private Set<Artifact> introducedDependencyArtifacts;
private String name;
private String description;
private String requiredMavenVersion;
private Plugin plugin;
private Artifact pluginArtifact;
private Map<String, Lifecycle> lifecycleMappings;
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
@SuppressWarnings( { "unchecked", "rawtypes" } )
public List<MojoDescriptor> getMojos()
{
return (List) getComponents();
}
public void addMojo( MojoDescriptor mojoDescriptor )
throws DuplicateMojoDescriptorException
{
MojoDescriptor existing = null;
// this relies heavily on the equals() and hashCode() for ComponentDescriptor,
// which uses role:roleHint for identity...and roleHint == goalPrefix:goal.
// role does not vary for Mojos.
List<MojoDescriptor> mojos = getMojos();
if ( mojos != null && mojos.contains( mojoDescriptor ) )
{
int indexOf = mojos.indexOf( mojoDescriptor );
existing = mojos.get( indexOf );
}
if ( existing != null )
{
throw new DuplicateMojoDescriptorException( getGoalPrefix(), mojoDescriptor.getGoal(),
existing.getImplementation(),
mojoDescriptor.getImplementation() );
}
else
{
addComponentDescriptor( mojoDescriptor );
}
}
public String getGroupId()
{
return groupId;
}
public void setGroupId( String groupId )
{
this.groupId = groupId;
}
public String getArtifactId()
{
return artifactId;
}
public void setArtifactId( String artifactId )
{
this.artifactId = artifactId;
}
// ----------------------------------------------------------------------
// Dependencies
// ----------------------------------------------------------------------
public static String constructPluginKey( String groupId, String artifactId, String version )
{
return groupId + ":" + artifactId + ":" + version;
}
public String getPluginLookupKey()
{
return groupId + ":" + artifactId;
}
public String getId()
{
return constructPluginKey( groupId, artifactId, version );
}
public static String getDefaultPluginArtifactId( String id )
{
return "maven-" + id + "-plugin";
}
public static String getDefaultPluginGroupId()
{
return "org.apache.maven.plugins";
}
/**
* Parse maven-...-plugin.
*
* TODO move to plugin-tools-api as a default only
*/
public static String getGoalPrefixFromArtifactId( String artifactId )
{
if ( "maven-plugin-plugin".equals( artifactId ) )
{
return "plugin";
}
else
{
return artifactId.replaceAll( "-?maven-?", "" ).replaceAll( "-?plugin-?", "" );
}
}
public String getGoalPrefix()
{
return goalPrefix;
}
public void setGoalPrefix( String goalPrefix )
{
this.goalPrefix = goalPrefix;
}
public void setVersion( String version )
{
this.version = version;
}
public String getVersion()
{
return version;
}
public void setSource( String source )
{
this.source = source;
}
public String getSource()
{
return source;
}
public boolean isInheritedByDefault()
{
return inheritedByDefault;
}
public void setInheritedByDefault( boolean inheritedByDefault )
{
this.inheritedByDefault = inheritedByDefault;
}
/**
* Gets the artifacts that make up the plugin's class realm, excluding artifacts shadowed by the Maven core realm
* like {@code maven-project}.
*
* @return The plugin artifacts, never {@code null}.
*/
public List<Artifact> getArtifacts()
{
return artifacts;
}
public void setArtifacts( List<Artifact> artifacts )
{
this.artifacts = artifacts;
// clear the calculated artifactMap
artifactMap = null;
}
/**
* The map of artifacts accessible by the versionlessKey, i.e. groupId:artifactId
*
* @return a Map of artifacts, never {@code null}
* @see #getArtifacts()
*/
public Map<String, Artifact> getArtifactMap()
{
if ( artifactMap == null )
{
artifactMap = ArtifactUtils.artifactMapByVersionlessId( getArtifacts() );
}
return artifactMap;
}
public boolean equals( Object object )
{
if ( this == object )
{
return true;
}
return object instanceof PluginDescriptor && getId().equals( ( (PluginDescriptor) object ).getId() );
}
public int hashCode()
{
return 10 + getId().hashCode();
}
public MojoDescriptor getMojo( String goal )
{
if ( getMojos() == null )
{
return null; // no mojo in this POM
}
// TODO could we use a map? Maybe if the parent did that for components too, as this is too vulnerable to
// changes above not being propagated to the map
for ( MojoDescriptor desc : getMojos() )
{
if ( goal.equals( desc.getGoal() ) )
{
return desc;
}
}
return null;
}
public void setClassRealm( ClassRealm classRealm )
{
this.classRealm = classRealm;
}
public ClassRealm getClassRealm()
{
return classRealm;
}
public void setIntroducedDependencyArtifacts( Set<Artifact> introducedDependencyArtifacts )
{
this.introducedDependencyArtifacts = introducedDependencyArtifacts;
}
public Set<Artifact> getIntroducedDependencyArtifacts()
{
return ( introducedDependencyArtifacts != null )
? introducedDependencyArtifacts
: Collections.<Artifact>emptySet();
}
public void setName( String name )
{
this.name = name;
}
public String getName()
{
return name;
}
public void setDescription( String description )
{
this.description = description;
}
public String getDescription()
{
return description;
}
public void setRequiredMavenVersion( String requiredMavenVersion )
{
this.requiredMavenVersion = requiredMavenVersion;
}
public String getRequiredMavenVersion()
{
return requiredMavenVersion;
}
public void setPlugin( Plugin plugin )
{
this.plugin = plugin;
}
public Plugin getPlugin()
{
return plugin;
}
public Artifact getPluginArtifact()
{
return pluginArtifact;
}
public void setPluginArtifact( Artifact pluginArtifact )
{
this.pluginArtifact = pluginArtifact;
}
public Lifecycle getLifecycleMapping( String lifecycleId )
throws IOException, XmlPullParserException
{
if ( lifecycleMappings == null )
{
LifecycleConfiguration lifecycleConfiguration;
try ( Reader reader = ReaderFactory.newXmlReader( getDescriptorStream( LIFECYCLE_DESCRIPTOR ) ) )
{
lifecycleConfiguration = new LifecycleMappingsXpp3Reader().read( reader );
}
lifecycleMappings = new HashMap<>();
for ( Lifecycle lifecycle : lifecycleConfiguration.getLifecycles() )
{
lifecycleMappings.put( lifecycle.getId(), lifecycle );
}
}
return lifecycleMappings.get( lifecycleId );
}
private InputStream getDescriptorStream( String descriptor )
throws IOException
{
File pluginFile = ( pluginArtifact != null ) ? pluginArtifact.getFile() : null;
if ( pluginFile == null )
{
throw new IllegalStateException( "plugin main artifact has not been resolved for " + getId() );
}
if ( pluginFile.isFile() )
{
try
{
return new URL( "jar:" + pluginFile.toURI() + "!/" + descriptor ).openStream();
}
catch ( MalformedURLException e )
{
throw new IllegalStateException( e );
}
}
else
{
return new FileInputStream( new File( pluginFile, descriptor ) );
}
}
/**
* Creates a shallow copy of this plugin descriptor.
*/
@Override
public PluginDescriptor clone()
{
try
{
return (PluginDescriptor) super.clone();
}
catch ( CloneNotSupportedException e )
{
throw new UnsupportedOperationException( e );
}
}
}
⏎ org/apache/maven/plugin/descriptor/PluginDescriptor.java
Or download all of them as a single archive file:
File name: maven-plugin-api-3.8.6-src.zip File size: 32096 bytes Release date: 2022-06-06 Download
⇒ maven-resolver-provider-3.8.6.jar - Resolver Provider Module
⇐ maven-model-builder-3.8.6.jar - Model Builder Module
2023-07-11, ∼7708🔥, 0💬
Popular Posts:
Where to find answers to frequently asked questions on Downloading and Installing ojdbc.jar - JDBC D...
Rhino JavaScript Java Library is an open-source implementation of JavaScript written entirely in Jav...
commons-collections4-4.4 -sources.jaris the source JAR file for Apache Commons Collections 4.2, whic...
JDK 17 jdk.internal.le.jmod is the JMOD file for JDK 17 Internal Line Editing module. JDK 17 Interna...
Apache Log4j provides the interface that applications should code to and provides the adapter compon...