Бинарный файл ANTLR

Когда я создаю сервер Xtext Language, я могу собрать его и получить файл .jar. Когда дело доходит до Antlr, как мне создать двоичный файл со всеми зависимостями?

Я создал проект Antlr в Eclipse, и это сгенерированная файловая структура. Однажды я создал DSL с помощью Xtext и Gradle, и когда я создал shadowJar, я получил файл .jar, созданный в каталоге *.ide/build/libs.

Мой вопрос: как мне создать аналогичный .jar или любой другой файл, который будет содержать все зависимости от моего нового проекта Antlr? Это проект ANTLR, а не Xtext.

Могу ли я просто скомпилировать и вставить gradle.build в каталог проекта antlr? Я использовал приведенный ниже код build.gradle, который я извлек из учебника: -

buildscript {
    repositories {
        maven {
            name 'JFrog OSS snapshot repo'
            url  'https://oss.jfrog.org/oss-snapshot-local/'
        }
        jcenter()
    }
    dependencies {
        classpath 'me.champeau.gradle:antlr4-gradle-plugin:0.1.1-SNAPSHOT'
    }
}
repositories {
    mavenCentral()
    jcenter()
}
apply plugin: 'java'
apply plugin: 'me.champeau.gradle.antlr4'
antlr4 {
    source = file('src/main/antlr')
    output = file('build/generated-src/me/tomassetti/pythonast/parser')
    extraArgs = ['-package', 'me.tomassetti.pythonast.parser']
}
compileJava.dependsOn antlr4
sourceSets.main.java.srcDirs += antlr4.output
configurations {
    compile.extendsFrom antlr4
}
task fatJar(type: Jar) {
    manifest {
        attributes 'Implementation-Title': 'Python-Parser',
                   'Implementation-Version': '0.0.1'
    }
    baseName = project.name + '-all'
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
}

и создал файл .jar. Но когда я пытался использовать in in eclipse che в качестве языкового сервера, я получаю ошибку тайм-аута. Вот репозиторий Git моего полного каталога: https://github.com/SharkJ/AntlrProject


person SharkJ    schedule 11.10.2018    source источник


Ответы (1)


Воспользуйтесь мастером создания нового проекта Xtext. у него есть варианты

  • создать ls с помощью maven или gradle
  • в толстой банке или приложении со стилем стартового скрипта

и если вы хотите использовать что-то в качестве языкового сервера, вам действительно нужно реализовать языковой сервер. вы можете сделать это либо с помощью xtext, либо вам нужно реализовать свою собственную версию, используя https://github.com/eclipse/lsp4j

person Christian Dietrich    schedule 11.10.2018