Я написал 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 {
}
- Где должен находиться блок sourceSets (внутри или снаружи блока xtext)?
- Является ли блок xtextсодержимое правильное?
- Что мне записать в блок xtend?Должно ли оно даже быть объявлено?
- Какую задачу Gradle нужно запустить, чтобы запустить средство запуска MWE2, а затем генератор кода?
Ниже приведен снимок моей организации проекта Eclipse.Заранее спасибо за ваше время!