我正在使用Apache Felix Maven Bundle插件来生成OSGi元数据。
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
您可以配置要导出的包,也可以使用默认值,不包括*.impl.*和*.internal.*.等包
有没有一种方法可以只为导出的包生成Javadoc,而不必复制这些信息?
编辑:
我目前的方法是手动设置excludePackageNames属性(Maven Javadoc插件属性),从而复制这些信息:
<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
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会做动态类加载器(当然),它必须能够看到你的代码。
我想最好的办法是,如果Maven Bundle插件能够提供生成所需信息的目标。
我提交了一个新问题:https://issues.apache.org/jira/browse/FELIX-4181