我正在考虑使用DSL /域设计来分析大量的maven依赖项。
输入是一个poms列表(实际上是poms和物理位置之间的映射),我认为它将被解析为“平面”(即非递归)文件,如下所示:
class Artifact(
val groupId : String,
val artifactId : String,
val version : String
)
class Module(
val id : Artifact,
val location : URI, // any good type for this ?
val parent : Option(Artifact),
val modules : List(Artifact),
val dependencies : List(Artifact)
)
然后“节点”上有三个结构
问题:如何设计这些?
我心中有一些可能性:
当然,我希望在数据结构中尽可能多地获取信息,以避免重复计算。大纲是:
我想要做的事情:
感谢您的任何见解...
答案 0 :(得分:0)
仅仅为了记录,我将基于不可变集合(树和scalax.graph http://www.assembla.com/spaces/scala-graph/wiki)实例化新结构。
为了浏览poms,我将它们渲染为xhtml,注入依赖/继承的链接,可能基于play-framework。
如果这个项目能产生一些有用的东西,我会在这里发布......