Созданный выше проект, который я создал, используется для разработки плагинов Eclipse.Чтобы создать LS для запуска в Dockerfile, необходимо создать двоичный файл (я использовал fatJar) из проекта Eclipse Xtext, который должен быть создан, как объяснено в этого учебного пособия (должен завершаться только до 'Упаковка LS 'включительно).Обратите внимание, что при упаковке LS достаточно добавить следующий фрагмент кода в файл build.gradle проекта * .ide: -
shadowJar {
baseName = 'dsl-language-server'
classifier = null
version = null
}
После этого родительский проект должен быть собран командой gradle shadowJar
в командной строке.Как только это будет сделано, файл .jar будет создан по следующему пути: *.ide/build/libs
Затем вам нужно будет создать отдельный каталог, скопировать и вставить в него папку сборки и создать файл.с именем dockerfile
(без расширения файла) и включите в него следующий код: -
FROM barais/eclipse-xtend
ADD build/libs/dsl-language-server-ls.jar dsl-language-server-ls.jar
RUN sudo apt-get install socat
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y software-properties-common && \
add-apt-repository ppa:webupd8team/java -y && \
apt-get update && \
echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections && \
apt-get install -y oracle-java8-installer && \
apt-get clean
CMD socat TCP4-LISTEN:4417,reuseaddr,fork EXEC:"java -jar dsl-language-server-ls.jar"
Затем создайте этот файл с помощью Docker и отправьте его в свою учетную запись Docker Hub в качестве репозитория.Используйте следующий рецепт для создания нового стека в Eclipse Che для использования принудительного репо из Docker Hub в качестве языкового сервера: -
services:
dsl-language-server-ls:
image : <youraccountname>/mydsl
mem_limit : 1073741824
dev-machine:
image : eclipse/ubuntu_jdk8
mem_limit : 2147483648
depends_on:
- dsl-language-server-ls
Отредактируйте необработанную конфигурацию и обновите ее следующим кодом в соответствующем местев конфигурации (Прочтите che doc для получения дополнительной информации: -
"id": "mydsl-ls",
"internal": "true",
"type": "ls",
"languageRegexes": "[ {\"languageId\":\"mydsllang\", \"regex\":\".*\\\\.mydsl$\"}]"
Создайте файл в новом проекте в Eclipse Che с добавленным вами расширением файла (.mydsl) иLS начнет работать, что позволит вам написать код в вашем DSL.
Yay!