public abstract class ByteBuddyMojo
extends org.apache.maven.plugin.AbstractMojo
Modifier and Type | Class and Description |
---|---|
static class |
ByteBuddyMojo.ForProductionTypes
A Byte Buddy plugin that transforms a project's production class files.
|
static class |
ByteBuddyMojo.ForTestTypes
A Byte Buddy plugin that transforms a project's test class files.
|
protected static class |
ByteBuddyMojo.MavenBuildLogger
A
BuildLogger implementation for a Maven Log . |
protected static class |
ByteBuddyMojo.TransformationLogger
A
Plugin.Engine.Listener that logs several relevant events during the build. |
Modifier and Type | Field and Description |
---|---|
String |
artifactId
The built project's artifact id.
|
boolean |
extendedParsing
When set to
true , the debug information of class files should be parsed to extract parameter names. |
boolean |
failFast
When set to
true , this mojo fails immediately if a plugin cannot be applied. |
boolean |
failOnLiveInitializer
When transforming classes during build time, it is not possible to apply any transformations which require a class
in its loaded state.
|
String |
groupId
The built project's group id.
|
Initialization |
initialization
The initializer used for creating a
ByteBuddy instance and for applying a transformation. |
String |
packaging
The built project's packaging.
|
org.apache.maven.project.MavenProject |
project
The Maven project.
|
List<org.eclipse.aether.repository.RemoteRepository> |
remoteRepositories
A list of all remote repositories.
|
org.eclipse.aether.RepositorySystem |
repositorySystem
The currently used repository system.
|
org.eclipse.aether.RepositorySystemSession |
repositorySystemSession
The currently used system session for the repository system.
|
boolean |
skip
When set to
true , this mojo is not applied to the current module. |
String |
suffix
Specifies the method name suffix that is used when type's method need to be rebased.
|
List<Transformation> |
transformations
The list of transformations.
|
String |
version
The built project's version.
|
boolean |
warnOnMissingOutputDirectory
When set to
true , this mojo warns of an non-existent output directory. |
Constructor and Description |
---|
ByteBuddyMojo() |
Modifier and Type | Method and Description |
---|---|
void |
execute() |
protected abstract List<String> |
getClassPathElements()
Returns the class path elements of the relevant output directory.
|
protected abstract String |
getOutputDirectory()
Returns the output directory to search for class files.
|
@Parameter(defaultValue="${project.groupId}", required=true, readonly=true) public String groupId
@Parameter(defaultValue="${project.artifactId}", required=true, readonly=true) public String artifactId
@Parameter(defaultValue="${project.version}", required=true, readonly=true) public String version
@Parameter(defaultValue="${project.packaging}", required=true, readonly=true) public String packaging
@Parameter(defaultValue="${project}", readonly=true) public org.apache.maven.project.MavenProject project
@Parameter public List<Transformation> transformations
The list of transformations. A transformation must specify the plugin
property, containing the name of a class to apply.
Additionally, it is possible to optionally specify Maven coordinates for a project that contains this plugin class as groupId
,
artifactId
and version
. If any of the latter properties is not set, this projects coordinate is used.
For example, the following configuration applies the foo.Bar
class which must implement Plugin
from artifact
transform-artifact
with this project's group and version:
<transformations> <transformation> <plugin>foo.Bar< /plugin> <artifactId>transform-artifact< /artifactId> < /transformation> < /transformations>
If the list of transformations
is empty or is not supplied at all, this plugin does not apply but prints a warning.
@Parameter public Initialization initialization
The initializer used for creating a ByteBuddy
instance and for applying a transformation. By default,
a type is rebased. The initializer's entryPoint
property can be set to any constant name of EntryPoint.Default
or to a class name. If the latter applies, it is possible to set Maven coordinates for a Maven plugin which defines this
class where any property defaults to this project's coordinates.
For example, the following configuration applies the foo.Qux
class which must implement EntryPoint
from
artifact initialization-artifact
with this project's group and version:
<initialization> <entryPoint>foo.Qux< /entryPoint> <artifactId>initialization-artifact< /artifactId> < /initialization>
@Parameter public String suffix
@Parameter(defaultValue="true", required=true) public boolean failOnLiveInitializer
false
, this plugin does not throw an exception if such a live
initializer is defined during a transformation process.@Parameter(defaultValue="false", required=true) public boolean skip
true
, this mojo is not applied to the current module.@Parameter(defaultValue="true", required=true) public boolean warnOnMissingOutputDirectory
true
, this mojo warns of an non-existent output directory.@Parameter(defaultValue="true", required=true) public boolean failFast
true
, this mojo fails immediately if a plugin cannot be applied.@Parameter(defaultValue="false", required=true) public boolean extendedParsing
true
, the debug information of class files should be parsed to extract parameter names.@Component public org.eclipse.aether.RepositorySystem repositorySystem
@Parameter(defaultValue="${repositorySystemSession}", required=true, readonly=true) public org.eclipse.aether.RepositorySystemSession repositorySystemSession
@Parameter(defaultValue="${project.remoteProjectRepositories}", required=true, readonly=true) public List<org.eclipse.aether.repository.RemoteRepository> remoteRepositories
public void execute() throws org.apache.maven.plugin.MojoExecutionException, org.apache.maven.plugin.MojoFailureException
org.apache.maven.plugin.MojoExecutionException
org.apache.maven.plugin.MojoFailureException
protected abstract String getOutputDirectory()
Copyright © 2014–2020. All rights reserved.