Confluence插件:如何正确导出包?

时间:2015-08-06 14:09:55

标签: java confluence osgi-bundle

我正在开发我的第一个confluence插件。该插件包含一些使用其他客户端的宏。在执行宏期间,我的一些类在ClassNotFound异常中找不到。 该文档告诉我,我必须导出我的包,使它们对OSGI包类加载器“可见”。 根据文档,这可以在atlassian-plugin.xml或模块的pom文件中完成。 我的pom文件包含以下部分:

  <build>
<plugins>
  <plugin>
    <groupId>com.atlassian.maven.plugins</groupId>
    <artifactId>maven-confluence-plugin</artifactId>
    <version>${amps.version}</version>
    <extensions>true</extensions>
    <configuration>
      <productVersion>${confluence.version}</productVersion>
      <productDataVersion>${confluence.data.version}</productDataVersion>
      <instructions>
        <Export-Package>
          info.magnolia.confluence.plugin.mib;version="${project.version}",
          info.magnolia.confluence.plugin.mib.artifactstore;version="${project.version}",
          info.magnolia.confluence.plugin.mib.macro;version="${project.version}",
          info.magnolia.confluence.plugin.mib.nexus;version="${project.version}",
          info.magnolia.confluence.plugin.mib.nexus.client;version="${project.version}",
          info.magnolia.confluence.plugin.mib.nexus.config;version="${project.version}",
          info.magnolia.confluence.plugin.mib.nexus.jaxb;version="${project.version}",
          info.magnolia.confluence.plugin.mib.util;version="${project.version}"
        </Export-Package>
      </instructions>
    </configuration>
  </plugin>
  <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
      <source>1.6</source>
      <target>1.6</target>
    </configuration>
  </plugin>
</plugins>

(有关完整的pom,请参阅http://pastebin.com/QSJajG8r

当我检查MANIFEST.MF时,它看起来“正确”,至少我看到我的导出(并且导入已自动添加),请参阅http://pastebin.com/Gq2aKEYp。 (嗯......清单的格式有点奇怪......)

但是,我仍然遇到ClassNotFound异常。

有人可以解释一下我必须以OSGI类加载器找到它们的方式“导出”我的包吗?

1 个答案:

答案 0 :(得分:0)

您是否添加了依赖项?

例如,

enum

此致 戈尔卡