如何在bndtools中使用Activator创建一个简单的包?它一直说:
The JAR is empty: The instructions for the JAR named com.myproj did not cause any content to be included, this is likely wrong bnd.bnd /com.myproj Unknown Bndtools Problem Marker
Unused Private-Package instructions, no such package(s) on the class path: [com.myproj] bnd.bnd /com.myproj Unknown Bndtools Problem Marker我在Eclipse中创建这个项目的方式是:
Activator.java中创建com.myproj。com.myproj添加到私有包中com.Activator这是我的bnd文件:
Bundle-Activator: com.myproj.Activator
Private-Package: com.myproj生成的jar是空的。有小费吗?
这里是我的eclipse项目(导出为压缩存档),以防它揭示任何事情:https://dl.dropbox.com/u/9162958/scraper.zip。
发布于 2012-12-08 09:54:48
我的猜测是“转换到Maven项目”是个麻烦。这可能已经将项目的Eclipse类路径从bnd默认bin文件夹更改为“目标/类”。你能确认它在不转换成maven的情况下工作吗?
bnd可以用于bin文件夹的其他位置,您必须设置${bin}属性(最好在cnf/build.bnd中)。对于如何在maven中使用bndtools,有一些解决方案。bnd之所以没有遵循Eclipse的设置,是因为没有Eclipse它们是不可用的,而bnd的设计目标是它可以在任何地方构建:因此,bnd文件必须是信息的最终仲裁者。
不管怎么说再给个小费..。激活器不是构建OSGi构建的正确方式,因为它们是一个邪恶的单例。声明式服务要好得多,我们在设计OSGi时应该使用类似的机制。
发布于 2014-11-13 10:57:46
我的设置:
以下是我如何使它工作的方法:
scraper.zip。cnf项目。bnd配置为对已编译的*.class文件使用bin目录,而将您的*.class项目配置为使用target/classes。因此,我必须通过添加一行来更改cnf/build.bnd中的设置:########################
## BND BUILD SETTINGS ##
########################
bin: target/classesbnd创建了包含您的Activator.class的generated/scraper.jar。备注:
bin目录而不是target/classes,但我假设您稍后将使用Maven。bndtools时,当您从一个空工作区开始并逐个导入您的项目时,它有时会有所帮助。https://stackoverflow.com/questions/13766588
复制相似问题