plugins { id 'refinery-java-library' id 'refinery-mwe2' id 'refinery-sonarqube' } dependencies { api libs.ecore api libs.ecore.xmi mwe2 libs.ecore.codegen mwe2 libs.mwe.utils mwe2 libs.mwe2.lib mwe2 libs.xtext.core mwe2 libs.xtext.xbase } sourceSets { main { java.srcDirs += ['src/main/emf-gen'] } } def generateEPackage = tasks.register('generateEPackage', JavaExec) { mainClass = 'org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher' classpath = configurations.mwe2 inputs.file 'src/main/java/tools/refinery/language/model/GenerateProblemModel.mwe2' inputs.file 'src/main/resources/model/problem.ecore' inputs.file 'src/main/resources/model/problem.genmodel' outputs.dir 'src/main/emf-gen' args += 'src/main/java/tools/refinery/language/model/GenerateProblemModel.mwe2' args += '-p' args += "rootPath=/${projectDir}" } for (taskName in ['compileJava', 'processResources', 'generateEclipseSourceFolders']) { tasks.named(taskName) { dependsOn generateEPackage } } tasks.named('clean') { delete 'src/main/emf-gen' } sonarqube.properties { properties['sonar.exclusions'] += [ 'src/main/emf-gen/**', ] } eclipse.project.natures += [ 'org.eclipse.sirius.nature.modelingproject', 'org.eclipse.pde.PluginNature', 'org.eclipse.xtext.ui.shared.xtextNature' ]