Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gradle无法解析依赖关系_Gradle_Dependency Management - Fatal编程技术网

Gradle无法解析依赖关系

Gradle无法解析依赖关系,gradle,dependency-management,Gradle,Dependency Management,在我的build.gradle文件中,依赖项中有一行: compile group: 'org.jboss.seam.validation', name: 'seam-validation-api', version:'3.1.0.Final' 当我尝试运行项目时,例如“测试”任务,我得到一个错误: > Could not resolve org.jboss.seam.validation:seam-validation-api:3.1.0.Final. Required by:

在我的build.gradle文件中,依赖项中有一行:

compile group: 'org.jboss.seam.validation', name: 'seam-validation-api', version:'3.1.0.Final'
当我尝试运行项目时,例如“测试”任务,我得到一个错误:

> Could not resolve org.jboss.seam.validation:seam-validation-api:3.1.0.Final.
Required by:
    com.smspl.mc5:mc5-web-ui:1.0.0-SNAPSHOT
    com.smspl.mc5:mc5-web-ui:1.0.0-SNAPSHOT > com.smspl.mc5:mc5-common-rest:1.0.0-SNAPSHOT
> Could not parse POM /Users/amorfis/.m2/repository/org/jboss/seam/validation/seam-validation-api/3.1.0.Final/seam-validation-api-3.1.0.Final.pom
  > Unable to resolve version for dependency 'javax.enterprise:cdi-api:jar'
> Could not parse POM https://nexus.softwaremill.com/content/groups/smlcommon-repos/org/jboss/seam/validation/seam-validation-api/3.1.0.Final/seam-validation-api-3.1.0.Final.pom
  > Unable to resolve version for dependency 'javax.enterprise:cdi-api:jar'
我知道问题在于seam验证api pom中没有指定“javax.enterprise:cdiapi:jar”的版本。它是在它的父级中指定的,gradle可能在理解它时遇到了一些问题。seam验证api pom的父部分如下所示:

<parent>
    <groupId>org.jboss.seam.validation</groupId>
    <artifactId>seam-validation-parent</artifactId>
    <version>3.1.0.Final</version>
    <relativePath>../pom.xml</relativePath>
</parent>

<dependencies>
    <dependency>
        <groupId>javax.enterprise</groupId>
        <artifactId>cdi-api</artifactId>
        <scope>provided</scope>
    </dependency>
</dependencies>

org.jboss.seam.validation
seam验证父项
3.1.0.1最终版本
../pom.xml
javax.enterprise
CDIAPI
假如
我的直觉告诉我问题的部分原因。我还试图通过添加新的build.gradle“dependencies”行来明确地添加这个父依赖项,但没有任何运气

有人知道这个解决方案吗

更新:在父pom中:

<groupId>org.jboss.seam.validation</groupId>
<artifactId>seam-validation-parent</artifactId>
<packaging>pom</packaging>
<version>3.1.0.Final</version>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.jboss.seam</groupId>
            <artifactId>seam-bom</artifactId>
            <version>${seam.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
org.jboss.seam.validation
seam验证父项
聚甲醛
3.1.0.1最终版本
org.jboss.seam
接缝bom表
${seam.version}
聚甲醛
进口

以下是对该问题的一些研究(仅研究,而非解决方案):

  • 有父母

  • seam-validation-parent-3.1.0.Final.pom有父项

  • 该文件包含CDIAPI的版本定义,但seam-parent-19.pom不包含

  • 该文件确实包含cdi api的dependencyManagement,但较新版本不包含

  • 我还研究了GradleCommoduleDescriptorBuilder(抛出上述“无法解析…”异常的类)的代码。该类似乎在父pom链上查找DependencyManagement部分,但它不考虑resolutionStrategy(或gradle脚本中的任何其他定义)。因此,目前不可能增加/覆盖POM的dependencyManagement


    我的建议是:联系seam框架的开发人员,让他们修复依赖关系。

    您能发布父POM的相关部分吗?是否在父POM中的
    下指定了
    cdi api的版本?是否下载过父POM?是的,验证api的版本(我想这就是你的意思?)在
    下指定,并且父POM已下载,但我怀疑gradle是否下载了。可能是maven。(我试图将这个模块从maven移动到gradle)我指的是组ID
    javax.enterprise
    和工件ID
    CDIAPI
    的依赖关系。这就是Gradle无法解析其版本的模块(请参阅错误消息)。好的,我现在明白了。谢谢我添加了seam验证api pom片段,您可以看到这里并没有给出cdi api的版本。它也不在父pom中。seam验证父项中指定了bom,但。。。我也没有在bom中找到CDIAPI版本。想知道maven是从哪里拿的吗?没有。在gradle中修复pom之前,pom编辑似乎是唯一的选项。