Liferay尚未解决的要求

问题描述 投票:0回答:2

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

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

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

我的文件:

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的文件夹中)。

java eclipse gradle portlet liferay-7
2个回答
1
投票

你不应该盲目地compileInclude一切,直到“它的工作”。检查this article你做了什么 - 更好的方法是将依赖项部署到OSGi容器 - 如果它们也是OSGi包。或者,也可以将它们作为OSGi包。

如果p01-jdbc.jar已经是OSGi包:将它部署到Liferay。如果它是一个自定义库而不是一个OSGi包,我宁愿把它变成一个,然后看到上面。

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


0
投票

找到我的问题的答案,我不得不使用compileInclude而不是编译。我还需要为我的依赖jar所需的另一个jar添加一行:

compileInclude files('libs/p01-jdbc.jar') 
compileInclude files('libs/mysql.jar') //This jar is used by the first one
© www.soinside.com 2019 - 2024. All rights reserved.