当我创建一个 Xtext 语言服务器时,我可以构建它并获得一个 .jar 文件。谈到 Antlr,我如何生成一个包含所有依赖项的二进制文件?
我在 Eclipse 中创建了一个 Antlr 项目,这是生成的文件结构。我曾经使用 Xtext 和 Gradle 创建了一个 DSL,当我构建 shadowJar 时,我在*.ide/build/libs
目录中创建了一个 .jar 文件。
我的问题是,我如何构建一个类似的 .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 文件。但是当我尝试在 eclipse che 中使用 in 作为语言服务器时,出现超时错误。这是我完整目录的 Git 存储库: https ://github.com/SharkJ/AntlrProject