嘿,我想在intellij idea插件中设置protobuf作为其他protobuf服务器(用golang编写)的客户端。这将是我对grpc的第一种java方法。我尝试使用kotlin无类生成器,但我的成功率甚至低于这种方法。
我的目标是:最佳案例场景:插件将允许将proto编译为kt文件非常好的案例场景:插件将输出java文件到src/main/proto
现有代码结构:
└───src
├───main
│ ├───kotlin
│ │ └───pl
│ │ └───dominikw
│ │ ├───configuration
│ │ ├───model
│ │ ├───service
│ │ │ └───impl
│ │ └───ui
│ ├───proto
│ └───resources
│ ├───icons
│ └───META-INF
└───test
├───kotlin
└───resources
和Gradle kotlin dsl文件:
import com.google.protobuf.gradle.*
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
group = "pl.dominikw"
version = "0.1.1"
val protobufVersion = "3.9.1"
buildscript {
repositories {
mavenCentral()
maven("https://oss.sonatype.org/content/repositories/snapshots/")
maven("https://dl.bintray.com/jetbrains/intellij-plugin-service")
}
dependencies {
classpath("org.jetbrains.intellij.plugins:gradle-intellij-plugin:0.5.0-SNAPSHOT")
}
}
plugins {
id("org.jetbrains.intellij") version "0.4.10"
id("com.google.protobuf") version "0.8.10"
kotlin("jvm") version "1.3.50"
java
idea
}
repositories {
mavenCentral()
maven("https://dl.bintray.com/kittinunf/maven")
}
dependencies {
implementation(kotlin("stdlib-jdk8"))
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.1")
implementation("com.github.kittinunf.fuel", "fuel", "2.2.0")
compile("com.google.protobuf:protobuf-java:$protobufVersion")
compile("io.grpc:grpc-stub:1.15.1")
compile("io.grpc:grpc-protobuf:1.15.1")
if (JavaVersion.current().isJava9Compatible) {
compile("javax.annotation:javax.annotation-api:1.3.2")
}
// protobuf(files("src/main/proto"))
// "mainProto"(files("src/main/proto"))
runtime("io.grpc:grpc-netty:1.14.0")
}
sourceSets {
main {
java.srcDir("src/main/kotlin")
resources.srcDir("src/main/resources")
proto.srcDir("src/main/proto")
}
}
// See https://github.com/JetBrains/gradle-intellij-plugin/
intellij {
version = "2019.2"
}
tasks.getByName<org.jetbrains.intellij.tasks.PatchPluginXmlTask>("patchPluginXml") {
changeNotes(
"""
Add change notes here.<br>
<em>most HTML tags may be used</em>"""
)
}
configure<org.jetbrains.intellij.IntelliJPluginExtension> {
version = "2019.2"
updateSinceUntilBuild = true
pluginName = "Windchill-Plugin"
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "1.8"
}
protobuf {
protoc {
artifact = "com.google.protobuf:protoc:$protobufVersion"
}
plugins {
id("grpc") {
artifact = "io.grpc:protoc-gen-grpc-java:1.15.1"
}
}
generateProtoTasks {
ofSourceSet("main").forEach {
it.plugins {
id("grpc")
}
}
}
}
错误代码如下:
7:17:20 PM: Executing task 'generateProto'...
> Task :extractIncludeProto UP-TO-DATE
> Task :extractProto UP-TO-DATE
> Task :generateProto FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':generateProto'.
> protoc: stdout: . stderr: C:\Users\XXX\IdeaProjects\Windchill-Intellij-Plugin\build\extracted-protos\main\service.proto: Input is shadowed in the --proto_path by "C:/Users/XXX/IdeaProjects/Windchill-Intellij-Plugin/src/main/proto/service.proto". Either use the latter file as your input or reorder the --proto_path so that the former file's location comes first.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 0s
3 actionable tasks: 1 executed, 2 up-to-date
7:17:20 PM: Task execution finished 'generateProto'.
您的错误消息是:
...Input is shadowed in the --proto_path by "C:/Users/XXX/IdeaProjects/Windchill-Intellij-Plugin/src/main/proto/service.proto".
这个proto文件夹中的proto文件有一些无效的定义。
我正在尝试建立一个基本的Gradle项目。我的构建。gradle文件如下。我一直得到下面的错误。我不明白,因为你可以在这里找到插件。。。我想我的目标是:https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-gradle-plugin 更新:如果我注释掉Kotlin行,Spring Boot插件也会发生同样的事情。这不仅仅针对K
如https://cloud . Google . com/app engine/docs/standard/Java/tools/Gradle-reference上所述,AppEngine Gradle插件提供如下配置: 使用 时,这样的配置应该是什么样子? 我正在查看AppEngine任务,但不明白如何将其连接到适当的Kotlin DSL设置。 编辑 当简单地将上述块添加到<code>buil
我在我的kotlin dsl构建文件中使用jsonschema2pojo gradle插件。 现在我需要更改插件的默认配置,如下所述 当我加上这个,我得到下面的错误- $gradle generateJsonSchema2Pojo 配置项目:e: /Users/rajkumar.natarajan/Documents/Coding/misc/jsonschema2pojo-enum-demo/bu
我试图使用kotlin与gradle,但我无法成功地创建一个项目与Intellij想法15。 我用两个模块和创建了一个简单项目。 是普通的java项目,编译和运行都非常好。 当运行时,所有项目都编译成功,但当运行时,我会出现以下错误: 此外,Intellij似乎无法将目录识别为源目录(它没有用蓝色标记),并且在编辑hellokotlin.kt文件时,我无法使用自动完成功能。 下面是Intellij
我正在尝试将Gradle插件中的一些任务配置从Groovy转换为Kotlin。我发现的所有示例都是关于普通构建脚本的,这种方法似乎并没有直接转化为插件的使用。我的尝试如下: 产生以下错误: 类型不匹配:推断类型是()- 做这件事的正确方法是什么?
我正在尝试运行我的项目,它运行没有任何问题,但在我更新Android Studio后…我有一个错误,我不知道我使用了哪个android studio版本之前,更新降级到它。 Android Gradle插件只支持Kotlin Gradle插件1.3.0及更高版本。以下依赖项不满足所需版本:项目':assets_audio_player'->org.jetbrains.kotlin:kotlin-g