Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用gradle定义生成器代码位置以生成xtext和xtend_Gradle_Xtext_Xtend - Fatal编程技术网

使用gradle定义生成器代码位置以生成xtext和xtend

使用gradle定义生成器代码位置以生成xtext和xtend,gradle,xtext,xtend,Gradle,Xtext,Xtend,我正在尝试使用xText和xtendbuildingwithgradle创建第一个项目 我按照xText文档中的指导创建了语法,还创建了xtend生成器 在eclipse中,代码按预期生成src gen文件夹 当我创建gradle脚本时,也遵循了生成代码的步骤,而不是在“src gen”文件夹中生成代码,它在“build”文件夹中生成代码 有没有办法在gradle中将此文件夹从build更改为src gen?我尝试了很多东西,但总是出错 等级脚本的完整代码: apply plugin: 'org

我正在尝试使用xText和xtendbuildingwithgradle创建第一个项目

我按照xText文档中的指导创建了语法,还创建了xtend生成器

在eclipse中,代码按预期生成src gen文件夹

当我创建gradle脚本时,也遵循了生成代码的步骤,而不是在“src gen”文件夹中生成代码,它在“build”文件夹中生成代码

有没有办法在gradle中将此文件夹从build更改为src gen?我尝试了很多东西,但总是出错

等级脚本的完整代码:

apply plugin: 'org.xtext.builder'

dependencies {
    xtextLanguages 'com.example.mylang:mylang:1.0.0-SNAPSHOT'
}

xtext {
    languages {
      mylang{
        setup = 'com.example.MyLangStandaloneSetup'
        generator.outlet.producesJava = true
      }
    }
    sourceSets {
      main {
        srcDir 'src/main/xtext'
    xtendOutputDir 'src-gen'
      }
    }
}

您可以在源集中配置它

sourceSets {
   main.xtendOutputDir = 'xtend-gen'
}
e、 g

或用于xtxt builder插件

buildscript {
    repositories {
        mavenLocal()
            jcenter()
    }
    dependencies {
        classpath 'org.xtext:xtext-gradle-plugin:1.0.21'
    }
}
plugins {
    id "org.xtext.builder" version "1.0.21"
}

repositories {
    mavenLocal()
    jcenter()
}

dependencies {
    xtextLanguages 'org.xtext.example.mydslfoo:org.xtext.example.mydslfoo:1.0.0-SNAPSHOT'
}

xtext {
    version '2.13.0'
    languages {
        mydslfoo {
            setup = 'org.xtext.example.mydslfoo.MyDslFooStandaloneSetup'
            generator {
                outlets {
                    HEROES {              
                    }
                    }
            }
        }
    }
    sourceSets {
        main {
            srcDir 'src'
            output {
                dir(xtext.languages.mydslfoo.generator.outlet, 'src-gen')
                }
        }
    }
  }

这是我的选择之一,但我有一个错误:评估脚本时出现问题。>在类型为org.xtext.gradle.tasks.internal.DefaultXtextSourceDirectorySet的[src/main/xtext]上找不到参数[src gen]的方法xtendOutputDir()。完整的gradle文件是什么样子的。您是否应用了pluginI更新了原始消息以包含gradle文件的全部内容。在父项目中,我将依赖项添加到语法jar中,并将其发布到本地常春藤存储库中。因此,问题是关于xtext而不是xtend?对我来说,很难知道边界线,因为语法是用xtext编写的,但生成器是用xtend编写的。目前我不能做的是,当我用Gradle编译时,生成的源代码是在build文件夹中创建的,而不是在src-gen中创建的。
buildscript {
    repositories {
        mavenLocal()
            jcenter()
    }
    dependencies {
        classpath 'org.xtext:xtext-gradle-plugin:1.0.21'
    }
}
plugins {
    id "org.xtext.builder" version "1.0.21"
}

repositories {
    mavenLocal()
    jcenter()
}

dependencies {
    xtextLanguages 'org.xtext.example.mydslfoo:org.xtext.example.mydslfoo:1.0.0-SNAPSHOT'
}

xtext {
    version '2.13.0'
    languages {
        mydslfoo {
            setup = 'org.xtext.example.mydslfoo.MyDslFooStandaloneSetup'
            generator {
                outlets {
                    HEROES {              
                    }
                    }
            }
        }
    }
    sourceSets {
        main {
            srcDir 'src'
            output {
                dir(xtext.languages.mydslfoo.generator.outlet, 'src-gen')
                }
        }
    }
  }