在 Java 中创建自定义原型插件



我正在尝试编写一个自定义ProtoC插件,但我无法使protoc与jar文件一起使用。似乎它尝试将其作为应用程序运行,我得到了:

.../libs/plugin-java-protobuf-1.0-jvm8.jar: program not found or is not executable

我已经看到了解决方案,其中创建了.sh脚本 java -jar ... ,但我想将我的插件与 Gradle Protobuf 插件和复合构建 (includeBuild ... 一起使用(。

我找到了解决此问题的 kroto-plus 插件 https://github.com/marcoferrer/kroto-plus/blob/master/protoc-gen-kroto-plus/build.gradle。它的罐子似乎是可执行的。

但不幸的是,我不明白我到底需要做什么。我试过引导罐:

plugins {
    id 'org.jetbrains.kotlin.jvm' version '1.3.21'
    id 'org.springframework.boot'
}
jar {
    archiveClassifier = 'jvm8'
    manifest {
        attributes 'Main-Class': 'plugin.PluginKt'
    }
}
bootJar {
    archiveClassifier = 'jvm8'
}

但结果是一样的:

.../libs/plugin-java-protobuf-1.0-jvm8.jar: program not found or is not executable

那么我怎样才能使 jar 真正可执行呢?

我愚蠢,只是忘了设置launchScript().所以下一个配置有效:

plugins {
    id 'org.springframework.boot' version '2.1.5.RELEASE'
}
jar {
    enabled = false
    archiveClassifier = 'jvm8'
}
bootJar {
    launchScript()
    archiveClassifier = 'jvm8'
    mainClassName = 'plugin.PluginKt'
}
jar.dependsOn(bootJar)

最新更新