Package org.apache.felix.bundleplugin
Class ManifestPlugin
java.lang.Object
org.apache.maven.plugin.AbstractMojo
org.apache.felix.bundleplugin.BundlePlugin
org.apache.felix.bundleplugin.ManifestPlugin
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled,org.apache.maven.plugin.Mojo
- Direct Known Subclasses:
BundleAllPlugin
@Mojo(name="manifest",
requiresDependencyResolution=TEST,
threadSafe=true,
defaultPhase=PROCESS_CLASSES)
public class ManifestPlugin
extends BundlePlugin
Generate an OSGi manifest for this project
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.felix.bundleplugin.BundlePlugin
BundlePlugin.ClassPathItem -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate org.sonatype.plexus.build.incremental.BuildContextprotected booleanWhen true, generate the manifest by rebuilding the full bundle in memoryprivate booleanWhen true, show stale files in the log at info level else at debug level.private booleanWhen true, manifest generation on incremental builds is supported in IDEs like Eclipse.Fields inherited from class org.apache.felix.bundleplugin.BundlePlugin
artifactFactory, artifactResolver, classifier, createDependencyReducedPom, dependencyGraphBuilder, dependencyReducedPomLocation, dumpClasspath, dumpInstructions, excludeDependencies, exportScr, localRepository, manifestLocation, mavenProjectBuilder, niceManifest, noWarningProjectTypes, packaging, project, remoteArtifactRepositories, scrLocation, session, supportedProjectTypes, unpackBundleFields inherited from interface org.apache.maven.plugin.Mojo
ROLE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate booleanChecks if any *.java file was added, updated or removed since last build in any source directory.static StringcalculateExportsFromContents(aQute.bnd.osgi.Jar bundle) private booleancontainsJavaFile(org.codehaus.plexus.util.Scanner scanner) protected voidexecute(Map<String, String> instructions, BundlePlugin.ClassPathItem[] classpath) private static voidexportScr(aQute.bnd.osgi.Analyzer analyzer, aQute.bnd.osgi.Jar jar, File scrLocation, org.sonatype.plexus.build.incremental.BuildContext buildContext, org.apache.maven.plugin.logging.Log log) protected aQute.bnd.osgi.AnalyzergetAnalyzer(org.apache.maven.project.MavenProject project, Map<String, String> instructions, BundlePlugin.ClassPathItem[] classpath) protected aQute.bnd.osgi.AnalyzergetAnalyzer(org.apache.maven.project.MavenProject project, BundlePlugin.ClassPathItem[] classpath) private Stringprivate PathgetIncrementalDataPath(org.apache.maven.project.MavenProject project) getManifest(org.apache.maven.project.MavenProject project, Map<String, String> instructions, BundlePlugin.ClassPathItem[] classpath, org.sonatype.plexus.build.incremental.BuildContext buildContext) getManifest(org.apache.maven.project.MavenProject project, BundlePlugin.ClassPathItem[] classpath) private static org.apache.maven.plugin.MojoExecutionExceptionprivate booleanisMetadataUpToDate(File outputFile, org.apache.maven.project.MavenProject project) private booleanisUpToDate(org.apache.maven.project.MavenProject project) private longprivate static longlastModified(Path p) private voidwriteIncrementalInfo(org.apache.maven.project.MavenProject project) static voidwriteManifest(aQute.bnd.osgi.Analyzer analyzer, File outputFile, boolean niceManifest, boolean exportScr, File scrLocation, org.sonatype.plexus.build.incremental.BuildContext buildContext, org.apache.maven.plugin.logging.Log log) static voidwriteManifest(Manifest manifest, File outputFile, boolean niceManifest, org.sonatype.plexus.build.incremental.BuildContext buildContext, org.apache.maven.plugin.logging.Log log) private static voidwriteSCR(aQute.bnd.osgi.Resource resource, File destination, org.sonatype.plexus.build.incremental.BuildContext buildContext, org.apache.maven.plugin.logging.Log log) Methods inherited from class org.apache.felix.bundleplugin.BundlePlugin
addMavenInstructions, addMavenSourcePath, buildOSGiBundle, convertVersionToOsgi, dumpClasspath, dumpInstructions, dumpManifest, execute, getBase, getBuildDirectory, getBundleName, getClasspath, getDefaultProperties, getEmbeddableArtifacts, getFile, getInstructions, getMaven2OsgiConverter, getMavenResourcePaths, getOptionalPackages, getOSGiBuilder, getOutputDirectory, getProject, includeJava9Fixups, includeMavenResources, isTransitivelyOptional, mergeManifest, mergeMavenManifest, removeTagFromInstruction, reportErrors, sanitize, sanitize, setBuildDirectory, setOutputDirectory, transformDirectives, updateExcludesInDepsMethods inherited from class org.apache.maven.plugin.AbstractMojo
getLog, getPluginContext, setLog, setPluginContext
-
Field Details
-
rebuildBundle
@Parameter(property="rebuildBundle") protected boolean rebuildBundleWhen true, generate the manifest by rebuilding the full bundle in memory -
supportIncrementalBuild
@Parameter(property="supportIncrementalBuild") private boolean supportIncrementalBuildWhen true, manifest generation on incremental builds is supported in IDEs like Eclipse. Please note that the underlying BND library does not support incremental build, which means always the whole manifest and SCR metadata is generated. -
showStaleFiles
@Parameter(property="showStaleFiles") private boolean showStaleFilesWhen true, show stale files in the log at info level else at debug level. -
buildContext
@Component private org.sonatype.plexus.build.incremental.BuildContext buildContext
-
-
Constructor Details
-
ManifestPlugin
public ManifestPlugin()
-
-
Method Details
-
execute
protected void execute(Map<String, String> instructions, BundlePlugin.ClassPathItem[] classpath) throws org.apache.maven.plugin.MojoExecutionException- Overrides:
executein classBundlePlugin- Throws:
org.apache.maven.plugin.MojoExecutionException
-
anyJavaSourceFileTouchedSinceLastBuild
private boolean anyJavaSourceFileTouchedSinceLastBuild()Checks if any *.java file was added, updated or removed since last build in any source directory. -
containsJavaFile
private boolean containsJavaFile(org.codehaus.plexus.util.Scanner scanner) -
getManifest
public Manifest getManifest(org.apache.maven.project.MavenProject project, BundlePlugin.ClassPathItem[] classpath) throws IOException, org.apache.maven.plugin.MojoFailureException, org.apache.maven.plugin.MojoExecutionException, Exception - Throws:
IOExceptionorg.apache.maven.plugin.MojoFailureExceptionorg.apache.maven.plugin.MojoExecutionExceptionException
-
getManifest
public Manifest getManifest(org.apache.maven.project.MavenProject project, Map<String, String> instructions, BundlePlugin.ClassPathItem[] classpath, org.sonatype.plexus.build.incremental.BuildContext buildContext) throws IOException, org.apache.maven.plugin.MojoFailureException, org.apache.maven.plugin.MojoExecutionException, Exception- Throws:
IOExceptionorg.apache.maven.plugin.MojoFailureExceptionorg.apache.maven.plugin.MojoExecutionExceptionException
-
exportScr
private static void exportScr(aQute.bnd.osgi.Analyzer analyzer, aQute.bnd.osgi.Jar jar, File scrLocation, org.sonatype.plexus.build.incremental.BuildContext buildContext, org.apache.maven.plugin.logging.Log log) throws Exception - Throws:
Exception
-
writeSCR
private static void writeSCR(aQute.bnd.osgi.Resource resource, File destination, org.sonatype.plexus.build.incremental.BuildContext buildContext, org.apache.maven.plugin.logging.Log log) throws Exception - Throws:
Exception
-
getAnalyzer
protected aQute.bnd.osgi.Analyzer getAnalyzer(org.apache.maven.project.MavenProject project, BundlePlugin.ClassPathItem[] classpath) throws IOException, org.apache.maven.plugin.MojoExecutionException, Exception - Throws:
IOExceptionorg.apache.maven.plugin.MojoExecutionExceptionException
-
getAnalyzer
protected aQute.bnd.osgi.Analyzer getAnalyzer(org.apache.maven.project.MavenProject project, Map<String, String> instructions, BundlePlugin.ClassPathItem[] classpath) throws IOException, org.apache.maven.plugin.MojoExecutionException, Exception- Throws:
IOExceptionorg.apache.maven.plugin.MojoExecutionExceptionException
-
writeIncrementalInfo
private void writeIncrementalInfo(org.apache.maven.project.MavenProject project) throws org.apache.maven.plugin.MojoExecutionException - Throws:
org.apache.maven.plugin.MojoExecutionException
-
isUpToDate
private boolean isUpToDate(org.apache.maven.project.MavenProject project) throws org.apache.maven.plugin.MojoExecutionException - Throws:
org.apache.maven.plugin.MojoExecutionException
-
isMetadataUpToDate
private boolean isMetadataUpToDate(File outputFile, org.apache.maven.project.MavenProject project) throws org.apache.maven.plugin.MojoExecutionException - Throws:
org.apache.maven.plugin.MojoExecutionException
-
getManifestUptodateCheckException
private static org.apache.maven.plugin.MojoExecutionException getManifestUptodateCheckException(IOException e) -
getIncrementalData
-
getIncrementalDataPath
-
lastmod
-
lastModified
- Throws:
IOException
-
newer
-
writeManifest
public static void writeManifest(aQute.bnd.osgi.Analyzer analyzer, File outputFile, boolean niceManifest, boolean exportScr, File scrLocation, org.sonatype.plexus.build.incremental.BuildContext buildContext, org.apache.maven.plugin.logging.Log log) throws Exception - Throws:
Exception
-
writeManifest
public static void writeManifest(Manifest manifest, File outputFile, boolean niceManifest, org.sonatype.plexus.build.incremental.BuildContext buildContext, org.apache.maven.plugin.logging.Log log) throws IOException - Throws:
IOException
-
calculateExportsFromContents
-