Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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
使用maven作为MPS baseLanguage模型的依赖项管理器?_Maven_Dependency Management_Mps - Fatal编程技术网

使用maven作为MPS baseLanguage模型的依赖项管理器?

使用maven作为MPS baseLanguage模型的依赖项管理器?,maven,dependency-management,mps,Maven,Dependency Management,Mps,有没有可能不将所有运行时JAR导入MPS,而直接使用外部依赖关系管理工具(如maven)并让它自动解析并将所有需要的库上载到MPS中?您可能应该使用: 构建语言是一种可扩展的构建自动化DSL,用于以声明方式定义构建。生成到Ant中,它利用Ant的执行能力,同时保持源代码干净,没有混乱和不相关的细节。它被组织成一堆MPS语言,底部是ANT,它允许构建过程的每个部分在不同的抽象级别上表达。如果您遵循语言约定,构建复杂工件(如MPS插件)只需一行代码即可完成,但与此同时,没有什么可以阻止您深入并定制文

有没有可能不将所有运行时JAR导入MPS,而直接使用外部依赖关系管理工具(如maven)并让它自动解析并将所有需要的库上载到MPS中?

您可能应该使用:

构建语言是一种可扩展的构建自动化DSL,用于以声明方式定义构建。生成到Ant中,它利用Ant的执行能力,同时保持源代码干净,没有混乱和不相关的细节。它被组织成一堆MPS语言,底部是ANT,它允许构建过程的每个部分在不同的抽象级别上表达。如果您遵循语言约定,构建复杂工件(如MPS插件)只需一行代码即可完成,但与此同时,没有什么可以阻止您深入并定制文件管理或清单属性等细节

简短回答:没有

详细回答:理论上,您可以使用maven或gradle获取依赖项和可传递依赖项。例如,您可以使用maven的任务将人工制品复制到某些位置。在格拉德尔,这是公平的。然后在解决方案的“运行时”选项卡中选择该文件夹。此时您会感到失望,因为它没有添加文件夹,而是将该文件夹中的所有jar作为libs添加。没有办法告诉MPS使用某个位置的所有jar,它只引用单个jar文件

我能想到的理论上如何工作的唯一方法是使用gradle,并且在获取依赖项之后,还可以通过编程方式更改.msd文件。将罐子与已提取的罐子同步。但我不知道如何与maven合作。但是对于groovy来说,这应该不是什么大问题


如果您选择尝试gradle方式,我们将非常高兴看到拉取请求将此功能添加到我们的应用程序中。;)

我有点厌倦了添加运行时依赖项,并发现我弄乱了它们的版本。我已经使用maven shade插件构建了一个胖jar。我还排除了项目工件,以便在两个单独的jar中具有可传递依赖项和工件。