由于 icu4j,无法 运行 需要 "org.eclipse.pde.core" 的 OSGi 测试
Can not run OSGi tests requiring "org.eclipse.pde.core" because of icu4j
我正在尝试 运行 使用来自 bnd 的 aQute.bnd.gradle.TestOSGi
任务进行一些测试。
我的图书馆需要 org.eclipse.pde.core
Resolution failed. Capabilities satisfying the following requirements could not be found:
[<<INITIAL>>]
⇒ osgi.identity: (osgi.identity=org.eclipse.pde.core)
⇒ [org.eclipse.pde.core version=3.13.200.v20191202-2135]
⇒ osgi.wiring.bundle: (&(osgi.wiring.bundle=org.eclipse.team.core)(bundle-version>=3.2.0)(!(bundle-version>=4.0.0)))
⇒ [org.eclipse.team.core version=3.8.800.v20191122-2107]
⇒ osgi.wiring.bundle: (&(osgi.wiring.bundle=org.eclipse.compare.core)(bundle-version>=3.5.200)(!(bundle-version>=4.0.0)))
⇒ [org.eclipse.compare.core version=3.6.700.v20191122-2107]
⇒ osgi.wiring.package: (&(osgi.wiring.package=com.ibm.icu.text)(version>=3.6.1))
我有 'com.ibm.icu:icu4j:64.2'
作为依赖项,我什至表示我想启动捆绑包 com.ibm.icu
。
-runrequires: \
bnd.identity;id='${project.archivesBaseName}',\
bnd.identity;id='junit-jupiter-engine',\
bnd.identity;id='junit-platform-launcher',\
bnd.identity;id='org.eclipse.pde.core',\
bnd.identity;id='com.ibm.icu',\
可以在这里找到最小的复制器项目:pde-run
project on GitHub
我查看了 icu4j.jar
里面的 MANIFEST 文件。
我看到以下内容:
Bundle-ManifestVersion: 2
Bundle-Name: ICU4J
Bundle-Description: International Components for Unicode for Java
Bundle-SymbolicName: com.ibm.icu
Bundle-Version: 64.2
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Main-Class: com.ibm.icu.util.VersionInfo
Export-Package: com.ibm.icu.lang,com.ibm.icu.math,com.ibm.icu.number,com.ibm.icu.text,com.ibm.icu.util
Automatic-Module-Name: com.ibm.icu
因此 com.ibm.icu.text
由该包导出。
有没有办法了解正在发生的事情?
我认为 Bundle-RequiredExecutionEnvironment
条目可能会阻止启动包(我正在使用 Java 8 进行测试)。如果是这种情况,我该怎么做才能解决我的问题?
未满足的要求是包裹 com.ibm.icu.text
和 version>=3.6.1
。但是,您显示的 icu4j.jar 副本的导出是未版本化的,这意味着它具有隐式版本 0.0.0.
遗憾的是 0.0.0 不大于或等于 3.6.1,因此该捆绑包不满足 org.eclipse.compare.core
捆绑包的要求。
我认为您需要来自 Eclipse Orbit 的正确 com.ibm.icu
包。例如,参见 https://download.eclipse.org/oomph/archive/reports/download.eclipse.org/releases/2021-09/index/com.ibm.icu_67.1.0.v20200706-1749.html。
我正在尝试 运行 使用来自 bnd 的 aQute.bnd.gradle.TestOSGi
任务进行一些测试。
我的图书馆需要 org.eclipse.pde.core
Resolution failed. Capabilities satisfying the following requirements could not be found:
[<<INITIAL>>]
⇒ osgi.identity: (osgi.identity=org.eclipse.pde.core)
⇒ [org.eclipse.pde.core version=3.13.200.v20191202-2135]
⇒ osgi.wiring.bundle: (&(osgi.wiring.bundle=org.eclipse.team.core)(bundle-version>=3.2.0)(!(bundle-version>=4.0.0)))
⇒ [org.eclipse.team.core version=3.8.800.v20191122-2107]
⇒ osgi.wiring.bundle: (&(osgi.wiring.bundle=org.eclipse.compare.core)(bundle-version>=3.5.200)(!(bundle-version>=4.0.0)))
⇒ [org.eclipse.compare.core version=3.6.700.v20191122-2107]
⇒ osgi.wiring.package: (&(osgi.wiring.package=com.ibm.icu.text)(version>=3.6.1))
我有 'com.ibm.icu:icu4j:64.2'
作为依赖项,我什至表示我想启动捆绑包 com.ibm.icu
。
-runrequires: \
bnd.identity;id='${project.archivesBaseName}',\
bnd.identity;id='junit-jupiter-engine',\
bnd.identity;id='junit-platform-launcher',\
bnd.identity;id='org.eclipse.pde.core',\
bnd.identity;id='com.ibm.icu',\
可以在这里找到最小的复制器项目:pde-run
project on GitHub
我查看了 icu4j.jar
里面的 MANIFEST 文件。
我看到以下内容:
Bundle-ManifestVersion: 2
Bundle-Name: ICU4J
Bundle-Description: International Components for Unicode for Java
Bundle-SymbolicName: com.ibm.icu
Bundle-Version: 64.2
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Main-Class: com.ibm.icu.util.VersionInfo
Export-Package: com.ibm.icu.lang,com.ibm.icu.math,com.ibm.icu.number,com.ibm.icu.text,com.ibm.icu.util
Automatic-Module-Name: com.ibm.icu
因此 com.ibm.icu.text
由该包导出。
有没有办法了解正在发生的事情?
我认为 Bundle-RequiredExecutionEnvironment
条目可能会阻止启动包(我正在使用 Java 8 进行测试)。如果是这种情况,我该怎么做才能解决我的问题?
未满足的要求是包裹 com.ibm.icu.text
和 version>=3.6.1
。但是,您显示的 icu4j.jar 副本的导出是未版本化的,这意味着它具有隐式版本 0.0.0.
遗憾的是 0.0.0 不大于或等于 3.6.1,因此该捆绑包不满足 org.eclipse.compare.core
捆绑包的要求。
我认为您需要来自 Eclipse Orbit 的正确 com.ibm.icu
包。例如,参见 https://download.eclipse.org/oomph/archive/reports/download.eclipse.org/releases/2021-09/index/com.ibm.icu_67.1.0.v20200706-1749.html。