1

我正在使用 Apache Felix Maven Bundle Plugin 来生成 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/dromler/dromler-oss-parent/ci/default/tree/pom.xml#l64

4

2 回答 2

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 会做动态类加载器(恶心),它必须能够看到你的代码。

于 2013-07-24T08:31:18.393 回答
0

我想最好的办法是,如果 Maven 捆绑插件能够提供生成所需信息的目标。

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

于 2013-07-24T09:37:05.617 回答