Package org.apache.maven.plugins.install
Class InstallFileMojo
- java.lang.Object
-
- org.apache.maven.plugin.AbstractMojo
-
- org.apache.maven.plugins.install.InstallFileMojo
-
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled
,org.apache.maven.plugin.Mojo
@Mojo(name="install-file", requiresProject=false, aggregator=true, threadSafe=true) public class InstallFileMojo extends org.apache.maven.plugin.AbstractMojo
Installs a file in the local repository.
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String
artifactId
ArtifactId of the artifact to be installed.private java.lang.String
classifier
Classifier type of the artifact to be installed.private java.lang.String
extension
Extension of the artifact to be installed.private java.io.File
file
The file to be installed in the local repository.private java.lang.Boolean
generatePom
Generate a minimal POM for the artifact if none is supplied via the parameterpomFile
.private java.lang.String
groupId
GroupId of the artifact to be installed.private static java.lang.String
ILLEGAL_VERSION_CHARS
private static java.util.function.Predicate<java.lang.String>
IS_EMPTY
private static java.util.function.Predicate<java.util.jar.JarEntry>
IS_POM_ENTRY
private static java.util.function.Predicate<java.lang.String>
IS_POM_PACKAGING
private java.io.File
javadoc
The bundled API docs for the artifact.private java.io.File
localRepositoryPath
The path for a specific local repository directory.private org.slf4j.Logger
log
private static java.lang.String
LS
private java.lang.String
packaging
Packaging type of the artifact to be installed.private static java.util.regex.Pattern
POM_ENTRY_PATTERN
private java.io.File
pomFile
Location of an existing POM file to be installed alongside the main artifact, given by thefile
parameter.private org.eclipse.aether.RepositorySystem
repositorySystem
private org.apache.maven.execution.MavenSession
session
private java.io.File
sources
The bundled sources for the artifact.private java.lang.String
version
Version of the artifact to be installed.
-
Constructor Summary
Constructors Constructor Description InstallFileMojo()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
execute()
private org.apache.maven.model.Model
generateModel()
Generates a minimal model from the user-supplied artifact information.private java.io.File
generatePomFile()
Generates a (temporary) POM file from the plugin configuration.private java.io.File
getLocalRepositoryFile(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.artifact.Artifact artifact)
Gets the path of the specified artifact within the local repository.private java.io.File
getPomLocalRepositoryFile(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.artifact.Artifact artifact)
Gets the path of the specified artifact POM within the local repository.private boolean
isValidId(java.lang.String id)
Returnstrue
if passed in string is "valid Maven ID" (groupId or artifactId).private boolean
isValidVersion(java.lang.String version)
Returnstrue
if passed in string is "valid Maven (simple.private void
processModel(org.apache.maven.model.Model model)
Populates missing mojo parameters from the specified POM.private java.io.File
readingPomFromJarFile()
private org.apache.maven.model.Model
readModel(java.io.File pomFile)
Parses a POM.
-
-
-
Field Detail
-
LS
private static final java.lang.String LS
-
log
private final org.slf4j.Logger log
-
repositorySystem
@Component private org.eclipse.aether.RepositorySystem repositorySystem
-
session
@Parameter(defaultValue="${session}", required=true, readonly=true) private org.apache.maven.execution.MavenSession session
-
groupId
@Parameter(property="groupId") private java.lang.String groupId
GroupId of the artifact to be installed. Retrieved from POM file if one is specified or extracted frompom.xml
in jar if available.
-
artifactId
@Parameter(property="artifactId") private java.lang.String artifactId
ArtifactId of the artifact to be installed. Retrieved from POM file if one is specified or extracted frompom.xml
in jar if available.
-
version
@Parameter(property="version") private java.lang.String version
Version of the artifact to be installed. Retrieved from POM file if one is specified or extracted frompom.xml
in jar if available.
-
packaging
@Parameter(property="packaging") private java.lang.String packaging
Packaging type of the artifact to be installed. Retrieved from POM file if one is specified or extracted frompom.xml
in jar if available.
-
classifier
@Parameter(property="classifier") private java.lang.String classifier
Classifier type of the artifact to be installed. For example, "sources" or "javadoc". Defaults to none which means this is the project's main artifact.- Since:
- 2.2
-
extension
@Parameter(property="extension") private java.lang.String extension
Extension of the artifact to be installed. If set, will override plugin own logic to detect extension. If not set, as Maven expected, packaging determines the artifact extension.- Since:
- 3.1.3
-
file
@Parameter(property="file", required=true) private java.io.File file
The file to be installed in the local repository.
-
javadoc
@Parameter(property="javadoc") private java.io.File javadoc
The bundled API docs for the artifact.- Since:
- 2.3
-
sources
@Parameter(property="sources") private java.io.File sources
The bundled sources for the artifact.- Since:
- 2.3
-
pomFile
@Parameter(property="pomFile") private java.io.File pomFile
Location of an existing POM file to be installed alongside the main artifact, given by thefile
parameter.- Since:
- 2.1
-
generatePom
@Parameter(property="generatePom") private java.lang.Boolean generatePom
Generate a minimal POM for the artifact if none is supplied via the parameterpomFile
. Defaults totrue
if there is no existing POM in the local repository yet.- Since:
- 2.1
-
localRepositoryPath
@Parameter(property="localRepositoryPath") private java.io.File localRepositoryPath
The path for a specific local repository directory. If not specified the local repository path configured in the Maven settings will be used.- Since:
- 2.2
-
IS_EMPTY
private static final java.util.function.Predicate<java.lang.String> IS_EMPTY
-
IS_POM_PACKAGING
private static final java.util.function.Predicate<java.lang.String> IS_POM_PACKAGING
-
POM_ENTRY_PATTERN
private static final java.util.regex.Pattern POM_ENTRY_PATTERN
-
IS_POM_ENTRY
private static final java.util.function.Predicate<java.util.jar.JarEntry> IS_POM_ENTRY
-
ILLEGAL_VERSION_CHARS
private static final java.lang.String ILLEGAL_VERSION_CHARS
- See Also:
- Constant Field Values
-
-
Method Detail
-
execute
public void execute() throws org.apache.maven.plugin.MojoExecutionException, org.apache.maven.plugin.MojoFailureException
- Throws:
org.apache.maven.plugin.MojoExecutionException
org.apache.maven.plugin.MojoFailureException
-
readingPomFromJarFile
private java.io.File readingPomFromJarFile() throws org.apache.maven.plugin.MojoExecutionException
- Throws:
org.apache.maven.plugin.MojoExecutionException
-
readModel
private org.apache.maven.model.Model readModel(java.io.File pomFile) throws org.apache.maven.plugin.MojoExecutionException
Parses a POM.- Parameters:
pomFile
- The path of the POM file to parse, must not benull
.- Returns:
- The model from the POM file, never
null
. - Throws:
org.apache.maven.plugin.MojoExecutionException
- If the POM could not be parsed.
-
processModel
private void processModel(org.apache.maven.model.Model model)
Populates missing mojo parameters from the specified POM.- Parameters:
model
- The POM to extract missing artifact coordinates from, must not benull
.
-
generateModel
private org.apache.maven.model.Model generateModel()
Generates a minimal model from the user-supplied artifact information.- Returns:
- The generated model, never
null
.
-
generatePomFile
private java.io.File generatePomFile() throws org.apache.maven.plugin.MojoExecutionException
Generates a (temporary) POM file from the plugin configuration. It's the responsibility of the caller to delete the generated file when no longer needed.- Returns:
- The path to the generated POM file, never
null
. - Throws:
org.apache.maven.plugin.MojoExecutionException
- If the POM file could not be generated.
-
getLocalRepositoryFile
private java.io.File getLocalRepositoryFile(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.artifact.Artifact artifact)
Gets the path of the specified artifact within the local repository. Note that the returned path need not exist (yet).
-
getPomLocalRepositoryFile
private java.io.File getPomLocalRepositoryFile(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.artifact.Artifact artifact)
Gets the path of the specified artifact POM within the local repository. Note that the returned path need not exist (yet).
-
isValidId
private boolean isValidId(java.lang.String id)
Returnstrue
if passed in string is "valid Maven ID" (groupId or artifactId).
-
isValidVersion
private boolean isValidVersion(java.lang.String version)
Returnstrue
if passed in string is "valid Maven (simple. non range, expression, etc) version".
-
-