35

我需要使用 Confluent kafka-avro-serializerMaven 工件。从官方指南中,我应该将此存储库添加到我的 Maven pom

<repository>
  <id>confluent</id>
  <url>http://packages.confluent.io/maven/</url>
</repository>

问题是 URL http://packages.confluent.io/maven/目前似乎不起作用,因为我得到了下面的响应

<Error>
  <Code>NoSuchKey</Code>
  <Message>The specified key does not exist.</Message>
  <Key>maven/</Key>
  <RequestId>15E287D11E5D4DFA</RequestId>
  <HostId>
    QVr9lCF0y3SrQoa1Z0jDWtmxD3eJz1gAEdivauojVJ+Bexb2gB6JsMpnXc+JjF95i082hgSLJSM=
  </HostId>
</Error>

事实上 Maven 并没有找到神器

<dependency>
  <groupId>io.confluent</groupId>
  <artifactId>kafka-avro-serializer</artifactId>
  <version>3.1.1</version>
</dependency>

你知道问题可能是什么吗?谢谢

4

7 回答 7

24

该文件可用,因为如果您直接访问它,您可以下载它: http ://packages.confluent.io/maven/io/confluent/kafka-avro-serializer/3.1.1/kafka-avro-serializer-3.1 .1.jar

您可以尝试将 -U 标志添加到您的 maven 命令以强制下载缓存文件。

repo 的根目录不可浏览,这就是您在浏览http://packages.confluent.io/maven/时收到消息的原因

于 2017-04-19T07:50:01.793 回答
16

就像您一样,我使用公司存储库(Sonatype Nexus)并且无法代理汇合的存储库。

然后我更改了我的 maven settings.xml 以从镜像存储库中排除融合:

    <mirrors>
        <mirror>
            <id>nexus</id>
            <mirrorOf>*,!confluent</mirrorOf> <!-- mirror anything but confluent as Nexus cannot proxy it -->
            <url>repository.company.local/nexus/content/groups/public</url>
        </mirror>
    </mirrors>
    ...
        <repositories>
            ...
            <repository>
                <id>confluent</id>
                <url>http://packages.confluent.io/maven/</url>
            </repository>
        </repositories>

这样,工件解析也适用于融合的工件。

不像代理 repo 那样简洁,但至少比手动下载和注册每个依赖项更方便。

于 2018-04-24T15:28:08.103 回答
13

在 pom.xml 中添加以下行对我有用。

<repositories>
    <repository>
        <id>confluent</id>
        <url>http://packages.confluent.io/maven/</url>
    </repository>
</repositories>
于 2020-03-28T21:51:18.357 回答
6

您可以在 maven 设置文件中添加一个镜像,以从 confluent repo 中获取 jars 以及存储库配置。需要的更改是在 settings.xml 中添加镜像

   <mirror>
      <id>confluent</id>
      <mirrorOf>confluent</mirrorOf>
      <name>Nexus public mirror</name>
      <url>http://packages.confluent.io/maven/</url>
</mirror>

在 Maven 设置的存储库部分添加这个

<repository>
          <id>confluent</id>
          <url>http://packages.confluent.io/maven/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
</repository>
于 2017-11-14T19:44:14.803 回答
6

从 http url 或 http url 中删除的 seams jar 文件不起作用。https 网址对我有用。

<repositories>
<repository>
    <id>confluent</id>
    <url>https://packages.confluent.io/maven/</url>
</repository>
于 2021-08-30T05:25:58.370 回答
4

当尝试将 Artifactory 连接到 Confluent Maven 存储库时,您必须将 Artifactory 中的 repo URL 设置为http://packages.confluent.io/mavenor https://packages.confluent.io/maven(两种方案似乎都可以正常工作)。令人困惑的部分是,当您要求 Artifactory 测试该 URL 时,它将失败并显示消息“输入可能不为空”。您也无法浏览 Artifactory 中的存储库。但是,不管这些问题如何,当客户端请求工件时,它们都会被下载和缓存。

于 2017-09-21T20:27:24.483 回答
0

在 Maven 项目的 POM 文件中添加融合存储库。

在 build.sbt 中使用以下 SBT 项目

resolvers += "confluent" at "https://packages.confluent.io/maven/"
于 2021-03-11T21:07:14.877 回答