Как создать подключаемый модуль Xtext Eclipse с Gradle? - PullRequest
0 голосов
/ 25 февраля 2019

Я написал DSL с Xtext 2.12, и мой генератор кода Xtend 2.12 производит код Java 8 из него.Я использую Eclipse Oxygen.3a.Я начал с создания проекта Xtext в виде плагина Eclipse, и все работает нормально, но я бы хотел, чтобы все было построено Gradle сейчас.Для этого я добавил природу Gradle в свой проект Xtext и запустил 'gradle init' для генерации файлов build.gradle и settings.gradle.Я обнаружил существование плагинов Xtext Gradle (Xtext Builder и Xtend Compiler) и использовал документацию этих плагинов для написания содержимого сценария build.gradle, но я не все понял и, что неудивительно, мой сборщик не работает.Не могли бы вы помочь мне правильно настроить этот конструктор?

plugins {
  id 'org.xtext.builder' version '2.0.3'
  id "org.xtext.xtend" version "2.0.3"
}

apply plugin: 'java'
apply plugin: 'org.xtext.xtend'
apply plugin: 'eclipse'

sourceSets {
  main.java.srcDirs = ['src','xtend-gen']
  main.xtendOutputDir = 'xtend-gen'
}

repositories {
  mavenCentral()
  jcenter()
}

dependencies {
  compile group: 'org.eclipse.xtend', name: 'org.eclipse.xtend.lib', version: '2.16.0'
  compile group: 'org.eclipse.xtext', name: 'org.eclipse.xtext', version: '2.16.0'
  compile group: 'org.eclipse.emf', name: 'org.eclipse.emf.codegen.ecore', version: '2.15.0'
  compile group: 'org.eclipse.xtext', name: 'org.eclipse.xtext.xtext.generator', version: '2.16.0'
  testCompile group: 'org.eclipse.xtext', name: 'org.eclipse.xtext.xbase.testing', version: '2.16.0'
}

xtext {
  languages {
    mapy {
      setup = 'com.mchp.mapy.MapyStandaloneSetup'
      generator.outlet.producesJava = true
    }
  }
  sourceSets {
    main {
      srcDirs 'src','xtend-gen'
      output {
        dir(xtext.languages.mapy.generator.outlet, 'src-gen')
      }
    }
  }
}

xtend {

}
  1. Где должен находиться блок sourceSets (внутри или снаружи блока xtext)?
  2. Является ли блок xtextсодержимое правильное?
  3. Что мне записать в блок xtend?Должно ли оно даже быть объявлено?
  4. Какую задачу Gradle нужно запустить, чтобы запустить средство запуска MWE2, а затем генератор кода?

Ниже приведен снимок моей организации проекта Eclipse.Заранее спасибо за ваше время!

enter image description here

...