3

是否有可能,而不是将所有运行时 jar 导入 MPS,而只使用 maven 之类的外部依赖管理工具并让它自动解析所有需要的库并将其上传到 MPS 中?

4

2 回答 2

2

简短的回答:不

长答案:理论上你可以使用 maven 或 gradle 来获取你的依赖和传递依赖。例如,您可以使用maven的复制依赖项任务将人工制品复制到某些位置。在 gradle 中它甚至更容易。然后在解决方案的运行时选项卡中选择文件夹。此时您会感到失望,因为它没有添加文件夹,而是将该文件夹中的所有 jar 作为库添加。没有办法告诉 MPS 使用某个位置的所有 jar,它只引用单个 jar 文件。

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

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

于 2017-08-03T20:34:23.800 回答
1

您可能应该使用MPS 构建语言

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

于 2017-08-03T18:58:11.143 回答