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.String
bnd
Bnd instructions for this project specified directly in the pom file.(package private) java.lang.String
bndfile
File path to a bnd file containing bnd instructions for this project.(package private) org.sonatype.plexus.build.incremental.BuildContext
buildContext
(package private) boolean
includeClassesDir
protected org.slf4j.Logger
logger
(package private) static java.lang.String
MANIFEST_LAST_MODIFIED
(package private) static java.lang.String
MARKED_FILES
(package private) org.apache.maven.plugin.MojoExecution
mojoExecution
private java.lang.String
outputTimestamp
(package private) static java.lang.String
PACKAGING_JAR
(package private) static java.lang.String
PACKAGING_WAR
(package private) java.util.List<java.lang.String>
packagingTypes
(package private) org.apache.maven.project.MavenProject
project
(package private) org.apache.maven.project.MavenProjectHelper
projectHelper
(package private) java.io.File
propertiesFile
(package private) org.apache.maven.settings.Settings
settings
(package private) boolean
skipIfEmpty
(package private) static java.lang.String
SNAPSHOT
(package private) java.io.File
targetDir
(package private) static java.lang.String
TSTAMP
(package private) java.io.File
warOutputDir
-
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.StringBuilder
addHeaderAttribute(java.lang.StringBuilder builder, java.lang.String key, java.lang.String value, char separator)
private static java.lang.StringBuilder
addHeaderValue(java.lang.StringBuilder builder, java.lang.String value, char separator)
private void
addMavenMetadataToJar(Jar bndJar)
private void
attachArtifactToProject(Jar bndJar)
private java.io.File
createArtifactFile()
private org.codehaus.plexus.util.xml.Xpp3Dom
defaultConfiguration()
void
execute()
private void
expandJar(Jar jar, java.io.File dir)
abstract java.io.File
getClassesDir()
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.File
getManifestPath()
abstract java.io.File
getOutputDir()
abstract java.util.List<org.apache.maven.model.Resource>
getResources()
abstract java.io.File
getSourceDir()
java.util.Optional<java.lang.String>
getType()
protected boolean
isEmpty(java.io.File directory)
abstract boolean
isSkip()
private void
loadParentProjectProperties(Builder builder, org.apache.maven.project.MavenProject currentProject)
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)
private java.io.File
loadProperties(Builder builder)
private boolean
manifestOutOfDate()
protected void
processBuilder(Builder builder)
If a mojo needs to tweak the builder for any particular reason, do it here.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.protected void
reportErrorsAndWarnings(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.MojoExecutionException
org.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()
-
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()
-
-