我已经将以下依赖项包括在我的Gradle项目的build.gradle文件中,以使用Vertex Ai LLM库.

implementation group: 'dev.langchain4j', name: 'langchain4j-vertex-ai', version: '0.22.0'

我在测试主功能时遇到了一个问题.

Idea IntelliJ提示符指出,它无法在com.google.guava的两个变体之间进行 Select :guava:32.1.2-jre(这是Vertex Ai依赖项的依赖项)

我收到以下错误消息

The consumer was configured to find an API of a library compatible with Java 11, preferably in the form of class files, and its dependencies declared externally.

However we cannot choose between the following variants of com.google.guava:guava:32.1.2-jre
      - androidApiElements
      - jreApiElements

我认为我需要使用jreApiElements变量,因为我只处理一个Web应用程序.看起来IDE很困惑,因为这两个变体提供了相同数量的参数.

All of them match the consumer attributes:
  - Variant 'androidApiElements' capabilities com.google.collections:google-collections:32.1.2-jre and com.google.guava:guava:32.1.2-jre declares an API of a library compatible with Java 8, packaged as a jar, and its dependencies declared externally:
      - Unmatched attributes:
          - Provides attribute 'org.gradle.jvm.environment' with value 'android' but the consumer didn't ask for it
          - Provides release status but the consumer didn't ask for it
  - Variant 'jreApiElements' capabilities com.google.collections:google-collections:32.1.2-jre and com.google.guava:guava:32.1.2-jre declares an API of a library compatible with Java 8, packaged as a jar, and its dependencies declared externally:
      - Unmatched attributes:
          - Provides attribute 'org.gradle.jvm.environment' with value 'standard-jvm' but the consumer didn't ask for it
          - Provides release status but the consumer didn't ask for it

请让我知道如何 Select jreApiElements变体,同时排除androidApiElements变体.可以在build.gradle/project gradle设置中完成,因为我希望代码是可移植的.

我已经try 了以下解决方案:

  1. 在Gradle包装属性中设置正确的Gradle版本 文件

  2. 添加参数appationDefaultJvmArgs= ["-org.gradle.jvm.Environment=标准-jvm"]到build.gradle文件 (这导致构建失败,所以我删除了它)

  3. 在build.gradle中添加以下2个依赖项

    实现组:‘com.google.cloud’,名称:‘google-cloud-aiform’,版本:‘3.24.0’

    实现组:‘com.google.guava’,名称:‘guava’,版本:‘32.1.2-jre’

上述解决方案都没有奏效.请让我知道如何排除番石榴依赖的Android变体

推荐答案

我们从一些Gradle专家那里得到的推荐列出了our release notes个.(抱歉,我真的应该在我们的主页上提到这一点.)

sourceSets.all {
  configurations.getByName(runtimeClasspathConfigurationName) {
    attributes.attribute(Attribute.of("org.gradle.jvm.environment", String), "standard-jvm")
  }
  configurations.getByName(compileClasspathConfigurationName) {
    attributes.attribute(Attribute.of("org.gradle.jvm.environment", String), "standard-jvm")
  }
}

我们还被告知,从Gradle 6升级到Gradle 7可能会消除对此的需求.

也就是说,我们听说了一些不同但相关的问题.因此,如果这对您的情况没有帮助,有人可能会提供另一种可能的解决方案.

Java相关问答推荐

如果给定层次 struct 级别,如何从其预序穿越构造n元树

如何在Android上获取来电信息

从技术上讲,OPC UA客户端是否可以通过转发代理将请求通过 tunel 发送到OPC UA服务器?

Java模式匹配记录

取消按钮,但没有任何操作方法引发和异常

如何在带有Micronaut的YAML中使用包含特殊字符的字符串作为键

Spark忽略Iceberg Nessie目录

如何在Microronaut中将 map 读取为 map

如何在antlr4中跳过所有反斜杠-换行符而保留换行符?

如何在JavaFX循环中完美地制作一个AudioClip/MediaPlayer?

来自外部模块的方面(对于Java+Gradle项目)不起作用

具有最大共同前景像素的图像平移优化算法

如何在Java中使用正则表达式拆分字符串

Java集合:NPE,即使没有添加空值

无法使用Open WebStart Java 8运行jnlp

如何利用OpenTelemeter将初始值(零)输出到普罗米修斯

在Java中比较同一多维数组的两个不同的字符串元素

";home/runner/work/中没有文件...匹配到[**/pom.xml];Maven项目的构建过程中出现错误

当我try 返回可选时,Mock无法正常工作

转换为JSON字符串时,日期按天递减-Java