manifest.mf._MANIFEST.MF和feature.xml版本控制规则
manifest.mf.
我永遠(yuǎn)都忘記了OSIF插件和功能的 MANIFEST.MF和feature.xml中的依賴項聲明的規(guī)則是什么。 谷歌搜索經(jīng)常導(dǎo)致沮喪而不是答案。 因此,因為今天我實際上找到了這些規(guī)則的簡要列表,所以我想在這里重新發(fā)布它們,并進(jìn)行一些較小的修改以幫助闡明。OSGi插件版本范圍
對包和軟件包的依賴項具有關(guān)聯(lián)的版本范圍,該版本范圍使用間隔符號指定:方括號“ [”或“]”表示范圍的包含端,而圓括號“(”或“)”表示排除端的范圍。 如果范圍的一端包括在內(nèi)而另一端不包括在內(nèi),則允許將圓括號與方括號配對。 下面的示例清楚地說明了這一點。
如果在需要版本范圍的地方使用了單個版本號,則這并不表示單個版本,而是從該版本開始,包括所有更高版本的范圍。
常見的情況有四種:
- “嚴(yán)格”版本范圍,例如[1.2.3,1.2.3],它表示該版本,并且僅表示該版本。
- “半開”范圍,例如[1.2.3,2.0.0),具有包含下限和專有上限,表示版本1.2.3和此后的任何版本,但不包括以下內(nèi)容:版本2.0.0。
- “無邊界”版本范圍,例如1.2.3,表示版本1.2.3和所有更高版本。
- 沒有版本范圍,表示可以接受任何版本。 不推薦 。
可以在此處 ( 或以PDF格式 ) 查看以上代碼段的 全文 。
例:
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)", org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)", org.eclipse.ui.ide;bundle-version="[3.4.0,4.0.0)", org.eclipse.ui.navigator;bundle-version="3.5.100", com.ibm.icu也可以看看:
- 插件清單 t(plugin.xml)
- osgi捆綁清單 (MANIFEST.MF)
在功能清單(feature.xml)規(guī)則方面, help.eclipse.org具有非常好的文檔,但是要記住的最重要的內(nèi)容以及我經(jīng)常要查找的內(nèi)容是如何陳述所需上游功能的匹配規(guī)則和插件。 經(jīng)驗表明,最好明確聲明所有內(nèi)容,因此無需進(jìn)行下游猜測,任何閱讀您的清單的人都確切知道該功能或與該功能兼容需要哪個版本。 另外,雖然您可能正在使用PDE UI進(jìn)行構(gòu)建,但其他人可能正在使用Tycho和Maven,并且每種工具都可以以自己的方式解釋丟失的元數(shù)據(jù)。
如有疑問,請說清楚。
有效值和處理如下:
- 如果未指定version屬性,則忽略match屬性(如果已指定)。
- 完美 –依賴的插件版本必須與指定版本完全匹配。 如果“ patch”為“ true”,則假定為“ perfect”,并且無法設(shè)置其他值。 [1.2.3,1.2.3]
- 等效 –依賴的插件版本必須至少為指定的版本或更高的服務(wù)級別(主要和次要版本級別必須等于指定的版本)。 [1.2.3,1.3)
- 兼容 –依賴的插件版本必須至少為指定的版本,或者為更高的服務(wù)級別或次要級別(主版本級別必須等于指定的版本)。 [1.2.3,2.0)
- GreaterOrEqual –依賴的插件版本必須至少為指定的版本,或更高級別的服務(wù)(次要或主要級別)。 1.2.3
上面的摘錄的全文可以在這里看到 。
例:
<requires><import feature="org.eclipse.m2e.feature" version="1.0.0" match="compatible"/><import feature="org.maven.ide.eclipse.wtp.feature" version="0.13.0" match="greaterOrEqual"/><plugin id="ch.qos.logback.classic" version="0.9.27.v20110224-1110" match="greaterOrEqual"/><plugin id="ch.qos.logback.core" version="0.9.27.v20110224-1110" match="greaterOrEqual"/><plugin id="ch.qos.logback.slf4j" version="0.9.27.v20110224-1110" match="greaterOrEqual"/><plugin id="org.slf4j.api" version="1.6.1.v20100831-0715" match="compatible"/><plugin id="com.ning.async-http-client" version="1.6.3.201106061504" match="equivalent"/><plugin id="org.jboss.netty" version="3.2.4.Final-201106061504" match="perfect"/><plugin id="org.hamcrest.core" version="1.1.0.v20090501071000" match="equivalent"/> </requires>參考: DivByZero博客上的JCG合作伙伴 Nick Boldt的MANIFEST.MF和feature.xml版本控制規(guī)則 。
翻譯自: https://www.javacodegeeks.com/2012/04/manifestmf-and-featurexml-versioning.html
manifest.mf.
總結(jié)
以上是生活随笔為你收集整理的manifest.mf._MANIFEST.MF和feature.xml版本控制规则的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓单核多核哪个重要(安卓单核)
- 下一篇: (usb的linux驱动)