Osgi bndtools激活程序包
如何在bndtools中创建带有激活器的简单捆绑包? 它一直在说:Osgi bndtools激活程序包,osgi,bnd,bndtools,Osgi,Bnd,Bndtools,如何在bndtools中创建带有激活器的简单捆绑包? 它一直在说: 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,
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中创建此项目的方式是:
com.myproj
中创建Activator.java
com.myproj
添加到私有包com.activator
Bundle-Activator: com.myproj.Activator
Private-Package: com.myproj
我生成的jar是空的。有什么建议吗
附:这是我的eclipse项目(导出为zip存档),以防它对某些事情有所启示:我猜“转换为Maven项目”是个麻烦。这可能已将项目的Eclipse类路径从bnd default bin文件夹更改为“target/classes”。您能确认它在不转换为maven的情况下工作吗
bnd可以与bin文件夹的其他位置一起使用,您必须设置${bin}
属性(最好在cnf/build.bnd
中)。有一些关于如何在maven中使用bndtools的书面说明。bnd在这里不遵循Eclipse的设置的原因是,没有Eclipse它们是不可用的,bnd的设计目标是在任何地方构建:因此,bnd文件必须是信息的最终仲裁者
无论如何,还有一个提示。。。激活器不是构建OSGi构建的正确方法,因为它们是一个邪恶的单体。声明式服务的优越性要高得多,我们在设计OSGi时实际上应该使用类似的机制。我的猜测是,“转换为Maven项目”是个麻烦。这可能已将项目的Eclipse类路径从bnd default bin文件夹更改为“target/classes”。您能确认它在不转换为maven的情况下工作吗
bnd可以与bin文件夹的其他位置一起使用,您必须设置${bin}
属性(最好在cnf/build.bnd
中)。有一些关于如何在maven中使用bndtools的书面说明。bnd在这里不遵循Eclipse的设置的原因是,没有Eclipse它们是不可用的,bnd的设计目标是在任何地方构建:因此,bnd文件必须是信息的最终仲裁者
无论如何,还有一个提示。。。激活器不是构建OSGi构建的正确方法,因为它们是一个邪恶的单体。声明式服务的优越性远不止于此,我们在设计OSGi时实际上应该使用类似的机制。My setup:
- 月食月亮4.4.0(20140612-0600)
- Bndtools 2.3.0.REL-20140510-023245
scraper.zip
cnf
项目已自动创建bnd
配置为使用bin
目录编译*.class
文件,而Eclipse项目配置为使用target/classes
。因此,我必须在cnf/build.bnd
中通过添加一行来更改此设置:bnd
创建generated/scraper.jar
,其中包含您的Activator.class
- 您还可以调整项目配置以使用
目录,而不是bin
,但我假设您稍后将使用Maventarget/classes
- 使用bndtools时,有时当您从一个空的工作区开始并逐个导入项目时,它会有所帮助
- bndtools 2.4中有一个bug,如果每个项目有多个源目录,就会导致一些问题。因此,我仍然使用版本2.3
- 月食月亮4.4.0(20140612-0600)
- Bndtools 2.3.0.REL-20140510-023245
scraper.zip
cnf
项目已自动创建bnd
配置为使用bin
目录编译*.class
文件,而Eclipse项目配置为使用target/classes
。因此,我必须在cnf/build.bnd
中通过添加一行来更改此设置:bnd
创建generated/scraper.jar
,其中包含您的Activator.class
- 您还可以调整项目配置以使用
目录,而不是bin
,但我假设您稍后将使用Maventarget/classes
- 使用bndtools时,有时当您从一个空的工作区开始并逐个导入项目时,它会有所帮助
- bndtools 2.4中有一个bug,如果每个项目有多个源目录,就会导致一些问题。因此,我仍然使用版本2.3
build.properties
文件@姆贝洛,我没有用第谷。我正在使用bndtools
########################
## BND BUILD SETTINGS ##
########################
bin: target/classes