OSGI Gradle 未解决的要求:导入包:com.opencsv;版本=“[3.8.0,4.0.0)” Liferay IDE 3

Mig*_*uel 5 eclipse osgi liferay gradle build.gradle

我正在尝试在我的项目中使用 opencsv 库来读取一些 CSV 文件。我在 gradle 中正确添加了此依赖项,它似乎可以在开发时使用。然而,在 OSGI 部署期间,会出现此错误:

Unresolved requirement: Import-Package: com.opencsv;version="[3.8.0,4.0.0)"
Run Code Online (Sandbox Code Playgroud)

也许我正在失去基本的东西。我在 jar 中挖掘,并在自动生成的清单中出现“com.opencsv;version=”[3.8.0,4.0.0)”在“Import-Package”条目中。我认为我build.gradle有错:

dependencies {
    compile group: "com.liferay.portal", name: "com.liferay.portal.kernel", version: "2.3.0"
    compile group: "com.liferay.portal", name: "com.liferay.util.taglib", version: "2.1.0"
    compile group: "javax.portlet", name: "portlet-api", version: "2.0"
    compile group: "javax.servlet", name: "servlet-api", version: "2.5" 
    compile group: "jstl", name: "jstl", version: "1.2"
    compile group: "org.osgi", name: "org.osgi.compendium", version: "5.0.0"    
    compile group: "com.opencsv", name: "opencsv", version: "3.8"

}

version = '1.0.0'
Run Code Online (Sandbox Code Playgroud)

我确信解决方案可能既简单又愚蠢,但我无法得到它。

Mig*_*uel 2

我自己来回答吧。我希望这对其他人有帮助。

对于这些类型的库,您必须执行以下操作:

  • 下载你的 jar 并将其放入你的 main/resources 中。
  • 在项目的bundle.gradle中添加

    bundle {
    exclude group: 'group.of.package'
    instruction 'Bundle-ClassPath', '.,nameofjar.jar' 
    instruction 'Embed-Transitive', 'true'}
    
    Run Code Online (Sandbox Code Playgroud)
  • 刷新 Gradle 依赖项

  • 从服务器中删除失败的捆绑包。

  • 清理、构建和部署。

我希望这对你有用。如果没有尝试联系我并尝试提供帮助。