【发布时间】:2017-05-12 22:13:45
【问题描述】:
我根据How to run Vaadin 7 applications in Karaf?创建了一个features.xml
所以我得到了这些行:
<feature name="vaadin-common" version="7.6.8">
<!-- preceding code -->
<bundle>wrap:mvn:com.yahoo.platform.yui/yuicompressor/2.4.8$Bundle-SymbolicName=com.yahoo.platform.yui.compressor&Bundle-Version=2.4.8</bundle>
<bundle>wrap:mvn:javax.validation/validation-api/1.0.0.GA$BundleSymbolicName=javax-validation-api&Bundle-Version=1.0.0.GA</bundle>
<bundle>wrap:mvn:com.google.appengine/appengine-api-1.0-sdk/1.7.7$BundleSymbolicName=com-google-appengine-api-1.0-sdk&Bundle-Version=1.7.7</bundle>
<!-- appending code -->
</feature>
当我执行feature:install vaadin-common 时,一切都会安装,但只有yuicompressor 被正确包装
Bundle-SymbolicName: com.yahoo.platform.yui.compressor
Bundle-Version: 2.4.8
捆绑标题。但对于其他两个这并不适用:
karaf@root()>bundle:list
1335│ Active │ 80 │ 2.4.8 │ com-yahoo-platform-yui-yuicompressor
1336│ Active │ 80 │ 1.7.7 │ wrap_file__home_mine_.m2_repository_com_google_appengine_appengine-api-1.0-sdk_1.7.7_appengine-api-1.0-sdk-1.7.7.jar_BundleSymbolicName_com.google.appengin
1337│ Active │ 80 │ 1.0.0.GA │ wrap_file__home_mine_.m2_repository_javax_validation_validation-api_1.0.0.GA_validation-api-1.0.0.GA.jar_BundleSymbolicName_javax.validation.validation-api
我将 Bundle-SymbolicName 的 yuicompressor 更改为不同的内容,并且更改不会影响标题。所以 wrap: 根本不起作用。
当我直接输入时(将'&amp;' 替换为'&'):
karaf@root()>bundle:install 'wrap:mvn:javax.validation/validation-api/1.0.0.GA$BundleSymbolicName=javax-validation-api&Bundle-Version=1.0.0.GA'
Bundle ID: 420
karaf@root()>bundle:list
ID │ State │ Lvl │ Version │ Name
420 │ Installed │ 80 │ 1.0.0.GA │ javax-validation-api
一切正常...
我试过了:
将
$BundleSymbolicName替换为$Bundle-SymbolicName跳过
Bundle-SymbolicName/Bundle-Version和两者一起玩转
&amp;和&将 URI 包装成
<![CDATA[]]>
我的假设是,Pax URL 会(或不会)在这里发挥它的魔力。似乎根本无法识别参数。 bundle:list 总是显示相同的结果。
我使用的是 karaf-4.1.1,而后者又坚持使用 OSGi-R6。
好的,我尝试使用 karaf-4.0.7,它运行良好。为什么不使用 4.1.1 版?
【问题讨论】:
标签: installation bundle apache-karaf