【发布时间】:2011-06-10 22:29:00
【问题描述】:
如何共享Simple Build Tool 模块 项目的定义
许多父项目之间?
同时
在每个父项目构建文件中包含模块项目定义?
澄清:
我有一个父项目,一个Dao 模块项目和一个App 模块项目和一个Core 项目。两个模块项目(即 Dao 和 App)都依赖于(完全相同的版本)Core:
Parent project
|
|--> app
| `--> core
|
`--> dao
`--> core
我在自己的项目目录中定义了App、Dao和Core,(as described here)
因此它们可以被许多父项目重新使用。
但是,当我加载父项目时,SBT 给出了这个错误:
The same directory is used for output for multiple projects
所以我将 App、Dao 和 Core 项目定义复制到父项目定义中。即在父项目的单个构建文件中声明所有项目及其依赖项。
现在一切正常。
然而,我有很多父项目。每个父项目使用不同版本的 App 项目和 Dao 项目。 (DAO = 数据访问对象——例如数据库存储或文件存储,因项目而异。)
所以我需要在每个父项目中重复 App 和 Dao 的定义,以避免The same directory is used for output for multiple projects
错误。但结果会是大量重复的项目构建代码!
我怎样才能避免这种情况?
我有一个想法:也许我可以创建一个模块,例如Dao 项目,带有一个 trait,它声明了所有 Dao 的依赖项(在 3rd 方库上)。那么几乎没有重复的代码,只有Dao对Core的依赖会在每个父项目中重复。
你怎么看?
您可能还有其他想法吗?
【问题讨论】:
标签: scala code-reuse sbt