【问题标题】:Create custom protoc plugin in Java在 Java 中创建自定义协议插件
【发布时间】:2019-06-02 11:51:43
【问题描述】:

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

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

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

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

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

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 真正可执行呢?

【问题讨论】:

    标签: java plugins protoc


    【解决方案1】:

    我太傻了,忘了设置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)
    
    

    【讨论】:

      猜你喜欢
      • 2012-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-09
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      • 1970-01-01
      相关资源
      最近更新 更多