Liferay中Gradle部署失败:无法识别项目依赖引用
Liferay 7新增模块依赖解析失败解决方案
问题场景
在Liferay 7门户的modules/apps目录下新增basic应用,包含basic-api和basic-rest-impl两个子模块,单独编译均正常,但执行ant all时,basic-rest-impl的Gradle部署步骤报错,提示找不到:apps:basic:basic-api项目。
解决步骤
1. 根级settings.gradle中注册新模块
Liferay的多项目构建依赖liferay-portal/modules/settings.gradle来发现所有子项目,必须在这里添加新模块的路径:
// 方式1:逐个添加 include ":apps:basic:basic-api" include ":apps:basic:basic-rest-impl" // 方式2:通配符批量包含(更简洁) include ":apps:basic:*"
2. 修正basic目录下的settings.gradle
如果之前在modules/apps/basic/settings.gradle中配置了子模块,要改成相对路径的引用(因为子settings.gradle的路径是相对于当前目录的):
include ":basic-api" include ":basic-rest-impl"
basic-rest-impl/build.gradle中的依赖声明可以保持compile project(':apps:basic:basic-api'),或者改成相对路径compile project(':basic-api'),两种写法都有效。
3. 给basic应用添加统一构建配置
新建modules/apps/basic/build.gradle,应用Liferay的应用插件,让子模块继承默认构建规则:
apply plugin: "com.liferay.app" subprojects { apply plugin: "com.liferay.plugin" }
4. 验证项目结构是否被识别
进入liferay-portal/modules目录,执行以下命令检查Gradle是否能发现新模块:
gradle projects
输出列表中如果出现:apps:basic:basic-api和:apps:basic:basic-rest-impl,说明注册成功。
5. 清理缓存后重新构建
执行以下命令彻底清理缓存并重新构建:
ant all-clean gradle --stop cd liferay-portal ant all
内容的提问来源于stack exchange,提问作者JhoG
相关产品推荐
相关产品推荐

