【问题标题】:RSocket RPC (Windows) Binaries with Gradle (Bluild fail)带有 Gradle 的 RSocket RPC (Windows) 二进制文件(Bluild 失败)
【发布时间】:2020-06-13 20:31:00
【问题描述】:

我正在尝试构建一个包含以下组件的混合项目: 1:弹簧靴 2:rSocket 3:gRPC

它是一个多容器应用程序,其中容器 1(Spring & rSocket,Java)通过 Spring-rSocket 与容器 2(rSocker,Spring,gRPC,Java)交互。然后它通过 rSocket-RPC 将信息传递给容器 3(gRPC、Python)。

自过去 3 天以来一直在尝试,但由于依赖项冲突而能够设置一个 maven 项目,从而导致 netty 调用失败。

开始设置 Gradle,与 maven 相比,我对 gradle 还是很陌生。为原型任务提出了以下脚本:

protobuf {
    protoc {
        artifact = 'com.google.protobuf:protoc:3.6.1'
    }
    generatedFilesBaseDir = "${projectDir}/build/generated-sources/"

    plugins {
            rsocketRpc {
            artifact = 'io.rsocket.rpc:rsocket-rpc-protobuf:0.2.17'
        }
    }
    generateProtoTasks {
        all()*.plugins {
            rsocketRpc {}
        }
    }
}

并关注 settings.gradle

中的 pluginManagement
pluginManagement {
    repositories {
        maven { url 'https://repo.spring.io/snapshot' }
        maven { url 'https://repo.spring.io/milestone' }
        maven { url 'https://repository.jboss.org/nexus/content/repositories/public/' }
//        maven { url 'https://jcenter.bintray.com/' }
        jcenter()
        maven { url 'https://dl.bintray.com/netifi/netifi-oss/' }
        gradlePluginPortal()
    }
    resolutionStrategy {
        eachPlugin {
            if (requested.id.id == 'org.springframework.boot') {
                useModule("org.springframework.boot:spring-boot-gradle-plugin:${requested.version}")
            }
        }
    }
}

但是构建总是失败,说找不到插件:

AzureAD+DebasishKanhar@DESKTOP-COEQQIB MINGW64 /d/Projects/Projects/Freelancing/Elysium Analytics/sia/graphdb/snowflake-graphdb/graphextractor_gradle (custom-graphdb-snowflake)
$ gradle build
> Task :generateProto FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':generateProto'.
> Could not resolve all files for configuration ':protobufToolsLocator_rsocketRpc'.
   > Could not find rsocket-rpc-protobuf-0.2.17-windows-x86_64.exe (io.rsocket.rpc:rsocket-rpc-protobuf:0.2.17).
     Searched in the following locations:
         https://repo.maven.apache.org/maven2/io/rsocket/rpc/rsocket-rpc-protobuf/0.2.17/rsocket-rpc-protobuf-0.2.17-windows-x86_64.exe

看起来它没有在 default maven repo 中找到插件,这是正确的,因为我知道 protoc 插件托管在 jcenter 中。但是如果你看到了,我已经在 pluginManagement 中添加了 URL,但是为什么我的构建脚本没有捕获 jcenter 存储库?

任何帮助将不胜感激:-)

【问题讨论】:

    标签: gradle protocol-buffers grpc protoc rsocket


    【解决方案1】:

    自己寻找这个问题的解决方案我找到了答案。

    简而言之,目前似乎没有 Windows 版本,只有 linux。看 https://repo.maven.apache.org/maven2/io/rsocket/rpc/rsocket-rpc-protobuf/0.2.17/

    因此,您需要在基于 linux 的操作系统(Ubuntu、Mac 等)或 grpc proto 而不是 rsocket one 上进行开发。

    真可惜,希望他们在某个时候打包 Windows 版本

    【讨论】:

    • 哇哦!这真的很奇怪,因为 rSocket 是一个很棒的框架,如果你与 gRPC 结合使用,它真的很强大。由于上述错误,不得不更改微服务的整个架构,因此现在它是唯一的纯 gRPC。但非常感谢您发布您的发现 :-) 将对将来寻找相同事物的人有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    相关资源
    最近更新 更多