Fork me on GitHub

inline:inline

Full name:

org.basepom.maven:inline-maven-plugin:0.3:inline

Description:

Inlines one or more dependencies of the project, relocated the classes and writes a new artifact.

Attributes:

  • Requires a Maven project to be executed.
  • Requires dependency resolution of artifacts in scope: compile+runtime.
  • The goal is thread-safe and supports parallel builds.
  • Binds by default to the lifecycle phase: package.

Required Parameters

Name Type Since Description
<prefix> String - Defines the package prefix for all relocated classes. This prefix must be a valid package name. All relocated classes are put under this prefix.
User property is: inline.prefix.

Optional Parameters

Name Type Since Description
<excludes> List - List of things to exclude.
<failOnNoMatch> boolean - Fail if an inline dependency is defined but the corresponding dependency is not actually found.
Default value is: true.
User property is: inline.failOnNoMatch.
<hideClasses> boolean - Hide inlined classes from IDE autocompletion.
Default value is: true.
User property is: inline.hide-classes.
<includes> List - List of things to include.
<inlineDependencies> List - List of dependencies to inline.
<inlinedArtifactAttached> boolean - If true, attach the inlined artifact, if false replace the original artifact.
Default value is: false.
User property is: inline.attachArtifact.
<inlinedClassifierName> String - The name of the classifier used in case the inlined artifact is attached.
Default value is: inlined.
<outputDirectory> File - The destination directory for the inlined artifact.
Default value is: ${project.build.directory}.
<outputJarFile> File - The path to the output file for the inlined artifact. When this parameter is set, the created archive will neither replace the project's main artifact nor will it be attached. Hence, this parameter causes the parameters inlinedArtifactAttached, inlinedClassifierName to be ignored when used.
<outputPomFile> File - The path to the output file for the new POM file. When this parameter is set, the created pom file will not replace the project's pom file.
<pomFile> File - The POM file to use.
Default value is: ${project.file}.
User property is: inline.pomFile.
<quiet> boolean - Silence all non-output and non-error messages.
Default value is: false.
User property is: inline.quiet.
<replacePomFile> boolean - If true, replace the POM file with a new version that has all inlined dependencies removed. It is possible to write a POM file that works to build the jar with inlined dependencies and then use the same POM file for the resulting artifact (by having all dependencies marked as
provided
and ensure that those dependencies do not have additional, transitive dependencies. This tends to be error prone and it is recommended to have the plugin rewrite the POM file.
Default value is: true.
User property is: inline.replacePomFile.
<requireOptional> boolean - If true, require the dependencies to inline to be defined as
optional
. This is good practice as it allows the unchanged pom to be used with the inlined artifact.
Default value is: true.
User property is: inline.requireOptional.
<requireProvided> boolean - If true, requires the dependencies to inline to be defined in scope
provided
. This is good practice as it allows the unchanged pom to be used with the inlined artifact.
Default value is: true.
User property is: inline.requireProvided.
<skip> boolean - Skip the execution.
Default value is: false.
User property is: inline.skip.

Parameter Details

<excludes>

List of things to exclude.
  • Type: java.util.List
  • Required: No

<failOnNoMatch>

Fail if an inline dependency is defined but the corresponding dependency is not actually found.
  • Type: boolean
  • Required: No
  • User Property: inline.failOnNoMatch
  • Default: true

<hideClasses>

Hide inlined classes from IDE autocompletion.
  • Type: boolean
  • Required: No
  • User Property: inline.hide-classes
  • Default: true

<includes>

List of things to include.
  • Type: java.util.List
  • Required: No

<inlineDependencies>

List of dependencies to inline.
  • Type: java.util.List
  • Required: No

<inlinedArtifactAttached>

If true, attach the inlined artifact, if false replace the original artifact.
  • Type: boolean
  • Required: No
  • User Property: inline.attachArtifact
  • Default: false

<inlinedClassifierName>

The name of the classifier used in case the inlined artifact is attached.
  • Type: java.lang.String
  • Required: No
  • Default: inlined

<outputDirectory>

The destination directory for the inlined artifact.
  • Type: java.io.File
  • Required: No
  • Default: ${project.build.directory}

<outputJarFile>

The path to the output file for the inlined artifact. When this parameter is set, the created archive will neither replace the project's main artifact nor will it be attached. Hence, this parameter causes the parameters inlinedArtifactAttached, inlinedClassifierName to be ignored when used.
  • Type: java.io.File
  • Required: No

<outputPomFile>

The path to the output file for the new POM file. When this parameter is set, the created pom file will not replace the project's pom file.
  • Type: java.io.File
  • Required: No

<pomFile>

The POM file to use.
  • Type: java.io.File
  • Required: No
  • User Property: inline.pomFile
  • Default: ${project.file}

<prefix>

Defines the package prefix for all relocated classes. This prefix must be a valid package name. All relocated classes are put under this prefix.
  • Type: java.lang.String
  • Required: Yes
  • User Property: inline.prefix

<quiet>

Silence all non-output and non-error messages.
  • Type: boolean
  • Required: No
  • User Property: inline.quiet
  • Default: false

<replacePomFile>

If true, replace the POM file with a new version that has all inlined dependencies removed. It is possible to write a POM file that works to build the jar with inlined dependencies and then use the same POM file for the resulting artifact (by having all dependencies marked as
provided
and ensure that those dependencies do not have additional, transitive dependencies. This tends to be error prone and it is recommended to have the plugin rewrite the POM file.
  • Type: boolean
  • Required: No
  • User Property: inline.replacePomFile
  • Default: true

<requireOptional>

If true, require the dependencies to inline to be defined as
optional
. This is good practice as it allows the unchanged pom to be used with the inlined artifact.
  • Type: boolean
  • Required: No
  • User Property: inline.requireOptional
  • Default: true

<requireProvided>

If true, requires the dependencies to inline to be defined in scope
provided
. This is good practice as it allows the unchanged pom to be used with the inlined artifact.
  • Type: boolean
  • Required: No
  • User Property: inline.requireProvided
  • Default: true

<skip>

Skip the execution.
  • Type: boolean
  • Required: No
  • User Property: inline.skip
  • Default: false