我正在尝试构建一个包含以下组件的混合项目:
1:Spring Boot
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相比,我还算是新手。完成以下脚本执行原型(prototype)任务:
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 {}
}
}
}
然后在设置中执行pluginManagement.gradle
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
看起来好像没有在默认maven存储库中找到该插件,这是正确的,因为我知道协议(protocol)插件托管在 jcenter 中。但是,如果看到的话,我已经在 pluginManagement 中添加了URL,但是为什么我的构建脚本无法捕获jcenter存储库?
任何帮助将非常感激 :-)
最佳答案
我自己在寻找解决方案,找到了答案。
简而言之,看起来目前没有Windows构建,只有linux。看到
https://repo.maven.apache.org/maven2/io/rsocket/rpc/rsocket-rpc-protobuf/0.2.17/
因此,您将需要在基于Linux的操作系统(Ubuntu,Mac等)或grpc proto而不是rsocket上进行开发。
真可惜,希望他们在某些时候打包了Windows版本
关于gradle - 带Gradle的RSocket RPC(Windows)二进制文件(失败),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62365218/