Confluent Maven存储库无法正常工作?

时间:2017-04-19 07:10:08

标签: maven apache-kafka avro confluent

我需要使用Confluent kafka-avro-serializer Maven工件。从official guide我应该将此存储库添加到我的Maven pom

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

问题是,当我收到以下回复时,网址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>

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

6 个答案:

答案 0 :(得分:15)

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

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

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

答案 1 :(得分:7)

就像你我使用公司存储库(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>

通过这种方式,工件解析适用于混合物&#39;工件也是。

不像代理回购那样整洁,但至少不如手动下载和注册每个依赖项那么麻烦。

答案 2 :(得分:4)

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

答案 3 :(得分:4)

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

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

答案 4 :(得分:1)

您可以在maven设置文件中添加镜像,以便从汇合仓库以及存储库配置中获取jar。 需要的改变是 在settings.xml中添加镜像

<repository>
          <id>confluent</id>
          <url>http://packages.confluent.io/maven/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
</repository>

在maven设置的存储库部分添加此

"AppSettings": {
  "Domain": "http://localhost"
}

答案 5 :(得分:0)

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

在 build.sbt 中用于 SBT 项目

resolvers += "confluent" at "https://packages.confluent.io/maven/"