Создать собственный плагин Protoc в Java - PullRequest
2 голосов
/ 02 июня 2019

Я пытаюсь написать собственный плагин 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, который решил эту проблему.Это 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-файл действительно исполняемым?

1 Ответ

0 голосов
/ 02 июня 2019

глупо с моей стороны, просто забыл установить 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)

...