2015-09-09 60 views
0

当我运行mvn clean install,行家抛出以下异常:行家捆绑插件生成错误

出口不上纸叠的Classpath [罐:点]包

我能成功打造几天前,为什么它发生?

+0

因为回答这个我看到了原来的问题[这里](HTTP:// stackoverflow.com/questions/32458371/osgi-bundle-compile-error)有更多的信息。如果两次询问同一个问题,根本不同的信息量将会有帮助。 –

回答

0

如果没有POM配置的详细信息,很难确定,但看起来您使用的是基于bnd的插件,这可能意味着maven-bundle-pluginbnd-maven-plugin

在任何一种情况下,正在生产的捆绑包都将导出不在捆绑包中的包。这是打破你的应用程序的一种肯定的方式,所以bnd无法创建包。

在猜测(因为我没有太多的信息去)下列之一发生:

  • 有人在你的包已经改名为一个包,但没有更新的出口在POM文件
  • 有人已经删除了您的POM先前被提取到捆绑为一个静态链接依赖
  • 有人重构您正在使用快照的依赖,不再包含你要导出
  • 有人包具有 将一个jar文件嵌入到您的包中,但不会将其添加到包类路径中。
  • 也有可能(但不太可能),有人已经配置了您的课不进入包文件的根目录,因此类相对.都没有。

解决前三个问题很简单,可以修复软件包名称,重新添加正确的依赖关系或删除导出。最后两个也很容易解决。你可以改变你的bundle的classpath这样的:

Bundle-ClassPath: /path/to/my.jar, /path/to/another.jar, /path/to/folder 

另一个,可能会更好,选择是不包括在嵌套JAR文件中的代码,而是直接在你的包中嵌入的代码。这将意味着调整您的插件配置以使用嵌入语法。因为我不知道是什么插件,您正在使用的我不能给你一个例子,但对于BND的文件包括资源here