使用 maven 作为 MPS 基础语言模型的依赖管理管理器?



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

简短回答:不

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

我能想到的理论上如何工作的唯一方法是使用 gradle,并在获取依赖项后以编程方式更改 .msd 文件。将其中的罐子与已获取的罐子同步。不过,我不确定如何使用 maven 执行此操作。但是对于时髦的人来说,这应该不是一个大问题。

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

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

构建

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

最新更新