Package aQute.bnd.maven.plugin
Class AbstractBndMavenPlugin
- java.lang.Object
-
- org.apache.maven.plugin.AbstractMojo
-
- aQute.bnd.maven.plugin.AbstractBndMavenPlugin
-
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled,org.apache.maven.plugin.Mojo
- Direct Known Subclasses:
BndMavenPlugin,BndMavenTestsPlugin
public abstract class AbstractBndMavenPlugin extends org.apache.maven.plugin.AbstractMojo
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.lang.StringbndBnd instructions for this project specified directly in the pom file.(package private) java.lang.StringbndfileFile path to a bnd file containing bnd instructions for this project.(package private) org.sonatype.plexus.build.incremental.BuildContextbuildContext(package private) booleanincludeClassesDirprotected org.slf4j.Loggerlogger(package private) static java.lang.StringMANIFEST_LAST_MODIFIED(package private) static java.lang.StringMARKED_FILES(package private) org.apache.maven.plugin.MojoExecutionmojoExecutionprivate java.lang.StringoutputTimestamp(package private) static java.lang.StringPACKAGING_JAR(package private) static java.lang.StringPACKAGING_WAR(package private) java.util.List<java.lang.String>packagingTypes(package private) org.apache.maven.project.MavenProjectproject(package private) org.apache.maven.project.MavenProjectHelperprojectHelper(package private) java.io.FilepropertiesFile(package private) org.apache.maven.settings.Settingssettings(package private) booleanskipIfEmpty(package private) static java.lang.StringSNAPSHOT(package private) java.io.FiletargetDir(package private) static java.lang.StringTSTAMP(package private) java.io.FilewarOutputDir
-
Constructor Summary
Constructors Constructor Description AbstractBndMavenPlugin()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description private static java.lang.StringBuilderaddHeaderAttribute(java.lang.StringBuilder builder, java.lang.String key, java.lang.String value, char separator)private static java.lang.StringBuilderaddHeaderValue(java.lang.StringBuilder builder, java.lang.String value, char separator)private voidaddMavenMetadataToJar(Jar bndJar)private voidattachArtifactToProject(Jar bndJar)private java.io.FilecreateArtifactFile()private java.lang.StringcreateArtifactName(org.apache.maven.artifact.Artifact artifact)private org.codehaus.plexus.util.xml.Xpp3DomdefaultConfiguration()voidexecute()private voidexpandJar(Jar jar, java.io.File dir)abstract java.io.FilegetClassesDir()java.util.Optional<java.lang.String>getClassifier()private java.util.Optional<org.codehaus.plexus.util.xml.Xpp3Dom>getConfiguration(java.util.List<org.apache.maven.model.Plugin> plugins)abstract java.io.FilegetManifestPath()abstract java.io.FilegetOutputDir()abstract java.util.List<org.apache.maven.model.Resource>getResources()abstract java.io.FilegetSourceDir()java.util.Optional<java.lang.String>getType()protected booleanisEmpty(java.io.File directory)abstract booleanisSkip()private voidloadParentProjectProperties(Builder builder, org.apache.maven.project.MavenProject currentProject)private java.io.FileloadProjectProperties(Builder builder, org.apache.maven.project.MavenProject bndProject, org.apache.maven.project.MavenProject pomProject, org.codehaus.plexus.util.xml.Xpp3Dom configuration)private java.io.FileloadProperties(Builder builder)private booleanmanifestOutOfDate()protected voidprocessBuilder(Builder builder)If a mojo needs to tweak the builder for any particular reason, do it here.protected voidprocessBuildPath(java.util.List<java.lang.Object> buildpath)If a mojo needs to update the buildpath for any particular reason, do it here.protected voidreportErrorsAndWarnings(Builder builder)
-
-
-
Field Detail
-
logger
protected final org.slf4j.Logger logger
-
MANIFEST_LAST_MODIFIED
static final java.lang.String MANIFEST_LAST_MODIFIED
- See Also:
- Constant Field Values
-
MARKED_FILES
static final java.lang.String MARKED_FILES
- See Also:
- Constant Field Values
-
PACKAGING_JAR
static final java.lang.String PACKAGING_JAR
- See Also:
- Constant Field Values
-
PACKAGING_WAR
static final java.lang.String PACKAGING_WAR
- See Also:
- Constant Field Values
-
TSTAMP
static final java.lang.String TSTAMP
- See Also:
- Constant Field Values
-
SNAPSHOT
static final java.lang.String SNAPSHOT
- See Also:
- Constant Field Values
-
targetDir
@Parameter(defaultValue="${project.build.directory}", readonly=true) java.io.File targetDir
-
includeClassesDir
@Parameter(defaultValue="true") boolean includeClassesDir
-
warOutputDir
@Parameter(defaultValue="${project.build.directory}/${project.build.finalName}") java.io.File warOutputDir
-
project
@Parameter(defaultValue="${project}", required=true, readonly=true) org.apache.maven.project.MavenProject project
-
settings
@Parameter(defaultValue="${settings}", readonly=true) org.apache.maven.settings.Settings settings
-
mojoExecution
@Parameter(defaultValue="${mojoExecution}", readonly=true) org.apache.maven.plugin.MojoExecution mojoExecution
-
packagingTypes
@Parameter(property="bnd.packagingTypes", defaultValue="jar,war") java.util.List<java.lang.String> packagingTypes
-
skipIfEmpty
@Parameter(property="bnd.skipIfEmpty", defaultValue="false") boolean skipIfEmpty
-
outputTimestamp
@Parameter(defaultValue="${project.build.outputTimestamp}") private java.lang.String outputTimestamp
-
bndfile
@Parameter(defaultValue="bnd.bnd") java.lang.String bndfile
File path to a bnd file containing bnd instructions for this project. Defaults tobnd.bnd. The file path can be an absolute or relative to the project directory.The bnd instructions for this project are merged with the bnd instructions, if any, for the parent project.
-
bnd
@Parameter java.lang.String bnd
Bnd instructions for this project specified directly in the pom file. This is generally be done using a<![CDATA[]]>section. If the projects has abnd file, then this configuration element is ignored.The bnd instructions for this project are merged with the bnd instructions, if any, for the parent project.
-
buildContext
@Component org.sonatype.plexus.build.incremental.BuildContext buildContext
-
projectHelper
@Component org.apache.maven.project.MavenProjectHelper projectHelper
-
propertiesFile
java.io.File propertiesFile
-
-
Method Detail
-
getSourceDir
public abstract java.io.File getSourceDir()
-
getResources
public abstract java.util.List<org.apache.maven.model.Resource> getResources()
-
getClassesDir
public abstract java.io.File getClassesDir()
-
getOutputDir
public abstract java.io.File getOutputDir()
-
getManifestPath
public abstract java.io.File getManifestPath()
-
isSkip
public abstract boolean isSkip()
-
getClassifier
public java.util.Optional<java.lang.String> getClassifier()
-
getType
public java.util.Optional<java.lang.String> getType()
-
execute
public void execute() throws org.apache.maven.plugin.MojoExecutionException, org.apache.maven.plugin.MojoFailureException- Throws:
org.apache.maven.plugin.MojoExecutionExceptionorg.apache.maven.plugin.MojoFailureException
-
processBuilder
protected void processBuilder(Builder builder) throws org.apache.maven.plugin.MojoFailureException
If a mojo needs to tweak the builder for any particular reason, do it here.- Parameters:
builder- the Builder created to analyze the jar contents- Throws:
org.apache.maven.plugin.MojoFailureException- if an issue is encountered
-
processBuildPath
protected void processBuildPath(java.util.List<java.lang.Object> buildpath)
If a mojo needs to update the buildpath for any particular reason, do it here.- Parameters:
buildpath- the set of jars and class directories used while analyzing the jar contents
-
addHeaderValue
private static java.lang.StringBuilder addHeaderValue(java.lang.StringBuilder builder, java.lang.String value, char separator)
-
addHeaderAttribute
private static java.lang.StringBuilder addHeaderAttribute(java.lang.StringBuilder builder, java.lang.String key, java.lang.String value, char separator)
-
attachArtifactToProject
private void attachArtifactToProject(Jar bndJar) throws java.lang.Exception
- Throws:
java.lang.Exception
-
addMavenMetadataToJar
private void addMavenMetadataToJar(Jar bndJar) throws java.io.IOException
- Throws:
java.io.IOException
-
createArtifactFile
private java.io.File createArtifactFile()
-
createArtifactName
private java.lang.String createArtifactName(org.apache.maven.artifact.Artifact artifact)
-
loadProperties
private java.io.File loadProperties(Builder builder) throws java.lang.Exception
- Throws:
java.lang.Exception
-
loadParentProjectProperties
private void loadParentProjectProperties(Builder builder, org.apache.maven.project.MavenProject currentProject) throws java.lang.Exception
- Throws:
java.lang.Exception
-
loadProjectProperties
private java.io.File loadProjectProperties(Builder builder, org.apache.maven.project.MavenProject bndProject, org.apache.maven.project.MavenProject pomProject, org.codehaus.plexus.util.xml.Xpp3Dom configuration) throws java.lang.Exception
- Throws:
java.lang.Exception
-
getConfiguration
private java.util.Optional<org.codehaus.plexus.util.xml.Xpp3Dom> getConfiguration(java.util.List<org.apache.maven.model.Plugin> plugins)
-
defaultConfiguration
private org.codehaus.plexus.util.xml.Xpp3Dom defaultConfiguration()
-
reportErrorsAndWarnings
protected void reportErrorsAndWarnings(Builder builder) throws org.apache.maven.plugin.MojoFailureException
- Throws:
org.apache.maven.plugin.MojoFailureException
-
isEmpty
protected boolean isEmpty(java.io.File directory)
-
expandJar
private void expandJar(Jar jar, java.io.File dir) throws java.lang.Exception
- Throws:
java.lang.Exception
-
manifestOutOfDate
private boolean manifestOutOfDate()
-
-