java - Liferay Unresolved 需求

标签 java eclipse gradle portlet liferay-7

我需要在另一个 Java 项目的 liferay 模块项目中使用一些类。我正在使用 gradle,当我部署应用程序时,即使 gradle 编译了我的 jar 文件,我也会收到 Unresolved 需求错误。

这是我到目前为止所做的,我的 gradle.build:

compile files('libs/p01-jdbc.jar')  
compileOnly group: "org.mql.biblio.dao.jdbc", name: "p01-jdbc", version: "default"

我的bnd文件:

Bundle-Name: Inter_Portlet_Communication
Bundle-SymbolicName: Inter_Portlet_Communication
Bundle-Version: 1.0.0
Export-Package: \
    com.mql.ipc.constants
Include-Resource: @p01-jdbc.jar

还有我的导入

import org.mql.biblio.dao.jdbc.DataBase;
import org.mql.biblio.dao.jdbc.DataSource;
import org.mql.biblio.dao.jdbc.MySQLDataSource;

P.S:我正在编译的 jar 还使用本地 mysql.jar(位于名为 lib 的文件夹中)。

最佳答案

您不应该盲目地compileIninclude一切,直到“它有效”。检查this article对于您所做的事情 - 将依赖项也部署到 OSGi 容器更好 - 如果它们也是 OSGi 包。或者,也将它们制作为 OSGi 包。

如果 p01-jdbc.jar 已经是 OSGi 包:将其部署到 Liferay。如果它是一个自定义库而不是 OSGi bundle ,我更愿意将其设为一个,然后参见上文。

对于数据库驱动程序,这可能会在稍后影响您,因为 mysql 驱动程序通常也是全局部署的,并且您可能会遇到无法相互替换的模糊类,或者不同版本中的相同类,通过不同的类加载器。

关于java - Liferay Unresolved 需求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55251537/

相关文章:

java - 在 spring boot embedded undertow 上将 http 重定向到 https

java - 在 testng 中使用 @DataProvider 进行数据驱动测试时出现错误 java.lang.NullPointerException

eclipse - 如何手动将软件/插件安装到 Eclipse IDE?

Java AnnotationProcessor 无法使用 gradle 5.1.1 生成代码

android - 如何在 Eclipse Buildship 插件中运行 'gradle init' 任务?

java - 无法使用 Java 语言访问类,但可以使用 Kotlin 访问类

java - 通过管道将输入输入到 Bash 中的 Java 程序

java - 如何将一个进程的输出重定向为另一进程的输入?

Windows 10 上的 Java Thread.sleep() 在 S3 sleep 状态下停止

java - 使用 Java 代码导入 Eclipse 项目