要启用 Kotlin OSGi 支持,你需要引入kotlin-osgi-bundle
而不是常规的 Kotlin 库。建议删除kotlin-runtime
、kotlin-stdlib
和kotlin-reflect
依赖,因为kotlin-osgi-bundle
已经包含了所有这些。当引入外部 Kotlin 库时你也应该注意。大多数常规 Kotlin 依赖不是 OSGi-就绪的,所以你不应该使用它们,且应该从你的项目中删除它们。
Maven
将 Kotlin OSGi 包引入到 Maven 项目中:
<dependencies> |
<dependency> |
<groupId>org.jetbrains.kotlin</groupId> |
<artifactId>kotlin-osgi-bundle</artifactId> |
<version>${kotlin.version}</version> |
</dependency> |
</dependencies> |
<dependency> |
<groupId>some.group.id</groupId> |
<artifactId>some.library</artifactId> |
<version>some.library.version</version> |
<exclusions> |
<exclusion> |
<groupId>org.jetbrains.kotlin</groupId> |
<artifactId>*</artifactId> |
</exclusion> |
</exclusions> |
</dependency> |
将 kotlin-osgi-bundle
引入到 gradle 项目中:
compile "org.jetbrains.kotlin:kotlin-osgi-bundle:$kotlinVersion" |
要排除作为传递依赖的默认 Kotlin 库,你可以使用以下方法:
dependencies { |
compile ( |
[group: 'some.group.id', name: 'some.library', version: 'someversion'], |
……) { |
exclude group: 'org.jetbrains.kotlin' |
} |
Require-Bundle
功能,但它也不是最好的选择,不推荐使用。所以决定为 OSGi 做一个单独的构件。