2017-02-17 33 views
0

Я хотел бы знать, есть ли способ организовать несколько DSL внутри одного проекта Eclipse. В частности, я хотел бы организовать все пять проектов Xtext DSL в какой-то топ-уровневой папке проекта.Несколько XSL-DSL в одном проекте Eclipse

Фон состоит в том, что мы управляем сложностью и включаем повторное использование путем создания меньших многоразовых DSL, например. один многоразовый для выражений и другой для более специфичных для домена или специфических для приложения аспектов. Тем не менее, каждый Xtext DSL приводит к 5 проектам, что вызывает много помех в Проводнике пакетов, когда задействованы несколько DSL. Сильно связанные вопрос был задан до:

Xtext: define 2 DSL's in one project

Ответ на этот вопрос есть, что несколько DSL, не нужны в проекте для этого конкретного сценария использования. Мой вариант использования отличается от того, что я хочу иметь возможность легко просматривать разные DSL и потенциально совместно развивать их.

Мы используем Xtext в среде, управляемой Gradle. Мы используем плагин Gradle Eclipse, который создает множество файлов проекта Eclipse во всем мире. В результате при выборе «Открыть проект из файловой системы» в Eclipse я не только получаю возможность импортировать пять проектов, связанных с DSL, но также и возможность открыть родительскую папку в качестве проекта. Это означает, что я могу иметь каждый DSL (все его пять проектов), аккуратно организованный в «папке проекта». Это именно то, что я хочу! ...

НО ...

это фактически не работает. На приведенном ниже рисунке показан мой пакетный исследователь с пятью проектами моего ExperimentDSL, включенными в нижнюю часть. Этот DSL работает. В верхней части это показывает структуру папок, которую я получаю, когда включаю файл проекта, созданный Gradle, в результате появляется «папка проекта», которая потенциально может содержать несколько DSL.

enter image description here

Как вы можете видеть, GenerateExperimentDSL помечен красным цветом и отказывается работать. Кажется, Eclipse каким-то образом рассматривает его как проект Java, но я не знаю, как это изменить или, если это поможет решить мою проблему. Во-вторых, я не знаю, как настроить такой проект вручную, так как файл проекта в этом неудачном случае был создан Gradle.

Короче говоря, кто-нибудь знает, как заставить такую ​​структуру папок работать, чтобы я мог хранить все свои DSL в рабочем пространстве без помех?

+0

Похоже, вы пытаетесь запустить рабочий процесс из родительского проекта, но вы должны запустить его из проекта dsl. Рекомендуем установить градирную конструкцию в eclipse, чтобы получить надлежащую поддержку для проектов gradle. –

+0

У меня есть Gradle Buildship, установленный в Eclipse, и у нас есть задачи по управлению частями нашего проекта, но не Xtext. Причина, по которой я упомянул Gradle, заключается лишь в том, чтобы предоставить некоторые сведения о том, как я открыл организацию, которую я хотел, хотя она не работает. В настоящее время я пытаюсь запустить рабочий процесс, просто щелкнув правой кнопкой мыши GenerateExperimentDSL.mwe2 и «Запускаем как рабочий процесс MWE2». Вы упомянули, что это означает, что я запускаю его из родительского проекта. В любом случае я могу вручную настроить структуру, которую я хочу вручную, и заставить ее работать, запустив ее из Eclipse? –

+0

Это то, что я имел в виду, должен был сделать это, чтобы сделать это –

ответ

0

Что вы пытаетесь сделать, в настоящее время не представляется возможным. Взгляните на концепцию WorkSets в Eclipse, которая позволит вам достичь чего-то подобного.