2016-04-26 65 views
0

我有一个Eclipse RCP应用程序,它包含应用程序的bundle类路径中的库。该MANIFEST.MF看起来是这样的:Eclipse RCP:如何处理bundle类路径中的库?

... 
Bundle-ClassPath: ., 
    libs/commons-io-2.4.jar, 
    libs/gson-2.3.1.jar, 
    libs/log4j-1.2.17.jar, 
    libs/slf4j-api-1.7.10.jar, 
    libs/slf4j-log4j12-1.7.10.jar 
... 

当应用程序被启动(如出口产品Eclipse之外),这些库复制到文件夹configuration/org.eclipse.osgi/13/0/.cp/libs。看看文件属性,似乎这是在每个应用程序启动(?)完成的。这种行为是否有文档记录,并可以影响这些行为(例如,定义从中加载这些库的自定义文件夹)?

回答

1

这是在插件打包为Jar时完成的。如果需要,FileLocator.toFileURL将暂时将罐子打开到这个位置。

您可以指定一个插件被打包为一个目录,以便这不会发生使用

Eclipse-BundleShape: dir 

如MANIFEST.MF一个条目(见Eclipse help

注:如果您正在使用功能来构建RCP,则此功能将被条目的unpack选项替换为feature.xml