Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中创建自定义protoc插件_Java_Plugins_Protoc - Fatal编程技术网

在Java中创建自定义protoc插件

在Java中创建自定义protoc插件,java,plugins,protoc,Java,Plugins,Protoc,我正在尝试编写一个定制的ProtoC插件,但是我不能让ProtoC与jar文件一起工作。似乎它试图将其作为应用程序运行,我得到: .../libs/plugin-java-protobuf-1.0-jvm8.jar: program not found or is not executable 我已经看到了解决方案,其中使用java-jar…创建了.sh脚本,但我想使用带有Gradle Protobuf插件和复合构建的插件(IncludeFild…) 我发现kroto plus插件解决了这个问

我正在尝试编写一个定制的ProtoC插件,但是我不能让ProtoC与jar文件一起工作。似乎它试图将其作为应用程序运行,我得到:

.../libs/plugin-java-protobuf-1.0-jvm8.jar: program not found or is not executable
我已经看到了解决方案,其中使用
java-jar…
创建了.sh脚本,但我想使用带有Gradle Protobuf插件和复合构建的插件(
IncludeFild…

我发现kroto plus插件解决了这个问题。它似乎是可执行的

但不幸的是,我不明白我到底需要做什么。我试过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真正可执行呢?

我真蠢,只是忘了设置
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)