我的担忧是将继承(甚至多重继承)的复杂性引入到原本简单的配置中。我从多年的Java经验中学会的关键一点是避免这些方法,并使用组合,这提供了更大的灵活性。
使用tools.build是否是一个更简单的方法来在单仓库中解决此问题?
在原始问题中提出的例子中,是否有一个机制来预防或至少警告:dev/project1
包含:dev/all-projects
或另一组别名的情况?这种分组可以深入到多少级别?
是否存在明确的优先级规则?
是否有工具可以诊断冲突所在的地点——也许-Stree足以处理,但我并不确定。
别名分组是否会限制在项目deps.edn中定义的别名中,或者也会包括用户级别的deps.edn(我假设排除用户级配置会增加复杂性)?
也许有一个避免这种情况的方法,就是有一个类似于:meta-aliases
的东西,它可以只包括别名,而不包括其他:meta-aliases
,但这样似乎还是在增加复杂性。
我希望能够解决单仓库特定的问题,而不要增加deps.edn配置的复杂性(特别是避免继承,甚至是多重继承)。