子项目的依赖关系无法为从属项目解决(但是在构建子项目本身时可以解决)

 手机用户2502904457 发布于 2023-02-05 11:30

按照“使用Gradle进行构建和测试”中的说明进行操作,我有一个这样的多项目gradle设置:

rootFolder
    build.gradle
    settings.gradle
    EMS
        build.gradle
    cloud-sdk
        build.gradle

cloud-sdk项目依赖于几个jar,部分通过maven解决,部分通过区域jar解决:

// file: cloud-sdk/build.gradle
apply plugin: 'java'

repositories {
    mavenCentral()
}

dependencies {
    compile group:'org.apache.tomcat', name:'tomcat-catalina', version:'7.0.47'
    compile group:'org.mongodb', name:'mongo-java-driver', version:'2.11.3'
    compile group:'com.google.code.gson', name:'gson', version:'2.2.4'
    compile group:'com.thoughtworks.xstream', name:'xstream', version:'1.4.6'
    compile fileTree(dir:'lib/', include:'JavaPNS_2.2.jar')
    compile fileTree(dir:'lib/', include:'gcm-server.jar')
}

-项目EMS取决于cloud-sdk,我认为应该这样定义:

// file: EMS/build.gradle
apply plugin: 'java'

dependencies {
    compile project(':cloud-sdk')
}

此外,我的根build.gradle和settings.gradle文件如下所示:

settings.gradle

include 'cloud-sdk', 'EMS'

build.gradle

apply plugin: 'java'

dependencies {
    compile project(':EMS')
}

在这种情况下,我不确定是否还需要依赖项compile project (':cloud-sdk')。我尝试了两个版本,但是由于在两种情况下都收到相同的错误消息,因此我认为这没有关系。

当我尝试通过rootFolder运行脚本时,gradle build出现以下错误消息:

Could not resolve all dependencies for configuration ':EMS:compile'.
> Could not find org.apache.tomcat:tomcat-catalina:7.0.47.
  Required by:
    rootFolder:EMS:unspecified > rootFolder:cloud-sdk:unspecified
> Could not find org.mongodb:mongo-java-driver:2.11.3.
  Required by:
    rootFolder:EMS > rootFolder:cloud-sdk:unspecified
> Could not find com.google.code.gson:gson:2.2.4.
  Required by:
    rootFolder:EMS > rootFolder:cloud-sdk:unspecified
> Could not find com.thoughtworks.xstream:xstream:1.4.6.
  Required by:
    rootFolder:EMS:unspecified > rootFolder:cloud-sdk:unspecified

但是,当我仅通过gradle cloud-sdk:buildgradle 构建cloud-sdk项目时,下载所需的jar并毫无问题地构建项目。

但是,即使我尝试gradle build这样做,尽管gradle注意到该cloud-sdk项目已经是最新的,但它仍抱怨缺少依赖项。

这是为什么?它已经下载了它们,因此即使在不cloud-sdk知道需要什么以及如何获取它们的情况下,它们也应该可以在某个地方使用。我想念什么?我是否需要以其他方式指定依赖项?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有