我知道另一个多项目问题。我已经看到(冲突的)我的目标子集的答案,但没有任何内容涵盖所有。 我是eclipse的新手并且不知道hg的脏细节。
给出一个通用的库jar,两个应用程序和一些常见的ant脚本......
我会设置它
/top/
build-common/
lib1/
app1/
app2/
我已经读过eclipse不做子项目所以我认为这将是4个eclipse项目,而“top”则没有什么可以实现的。
我已经阅读了如何使用ant进行eclipse构建,包括自动构建。
我不清楚是否有4个eclipse项目强制4个mercurial项目。 IF mercurialeclipse插件支持它,我可以使它成为一个hg项目(“顶部”)。但我不确定它的优点和缺点。 Team-> Commit可能会影响其他eclipse项目 - 对于eclipse用户来说这似乎是错误的吗?
Pre-eclipse,我通常会有一个顶级build.xml来构建子项目。即使eclipse构建不需要它,我也想支持完整的命令行构建。
此外,我怀疑在您的代码实际位于工作区/目录下之间存在一些细微差别。任何人都可以解释这对我的布局意味着什么?
非常感谢!
TLC
答案 0 :(得分:0)
我已经用CVS完成了这类事情,但我不确定如何使用Mercurial。 (我也希望切换到Mercurial)
我可以回答你的部分问题。
使用CVS,我将为/ top /创建一个Eclipse项目,并将不同的模块作为子目录拉入其中。我不知道MercurialEclipse是否支持子回购,但这将是我的第一选择(1个Eclipse项目,拉入子回购)
如果/ app1和/ app2之间存在很多依赖关系,我认为每个ant脚本都可以引用build-common。另一个选择是在/ app1,/ app2中有一个build.xml,然后在/ build-common中有一个master build.xml,只需调用/ app1& / app2然后将所有内容包装起来。
如果使用Ant脚本,则还必须手动管理Eclipse类路径。在我的经历中,这并不困难。如果在Eclipse中设置类路径,则自动构建将起作用。
我更喜欢这种结构:
/top/
/top/build.xml (references /app1/build.xml, /app2/build.xml)
/lib1
/app1/
/app1/build.xml (references ../lib1)
/app2
/app2/build.xml (references ../lib1)
最大的问题是MercurialEclipse和子回购。但是,如果它不支持子回购,只需从命令行使用Hg直到它赶上。