OSGi:Apache Felix Maven Bundle插件和Javadoc

时间:2012-07-23 20:10:06

标签: java osgi javadoc maven-bundle-plugin

我正在使用Apache Felix Maven Bundle插件来生成OSGi元数据。

<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>

您可以配置导出的软件包,也可以使用默认值,不包括* .impl。*和* .internal。*。

等软件包。

有没有办法只为导出的包生成Javadoc而不必复制这些信息?

修改

我目前的方法是手动设置excludePackageNames属性(Maven Javadoc Plugin属性),从而复制此信息:

<excludePackageNames>*.internal.*:*.impl.*</excludePackageNames> <!-- used by Javadoc plugin --><!-- TODO: get this from OSGi meta data-->

http://sourceforge.net/p/drombler/drombler-oss-parent/ci/default/tree/pom.xml#l64

2 个答案:

答案 0 :(得分:0)

Apache Maven捆绑插件基于bndlib,它有自己的插件模型。如果maven插件模型具有其他maven插件的类可见性,则很容易获得此信息。在pom注册表中的一个插件:

<instructions>
  <_plugin>com.example.MyPlugin</_plugin>
</instruction>

在这个bnd插件中,实现AnalyzerPlugin接口

boolean analyzeJar(Analyzer analyzer) throws Exception {
   doJavadoc( analyzer.getExportedPackages().keySet() );
}

我不熟悉maven插件,因为bnd会做动态类加载器(yuck),它必须能够看到你的代码。

答案 1 :(得分:0)

我想最好的事情是,如果Maven Bundle插件提供了生成所需信息的目标。

我提交了一个新问题:https://issues.apache.org/jira/browse/FELIX-4181