日食,蚂蚁和mercurial与多个(子)项目

时间:2011-05-27 15:31:01

标签: eclipse ant mercurial multiple-projects

我知道另一个多项目问题。我已经看到(冲突的)我的目标子集的答案,但没有任何内容涵盖所有。 我是eclipse的新手并且不知道hg的脏细节。

给出一个通用的库jar,两个应用程序和一些常见的ant脚本......

我会设置它

/top/
    build-common/
    lib1/
    app1/
    app2/

我已经读过eclipse不做子项目所以我认为这将是4个eclipse项目,而“top”则没有什么可以实现的。

我已经阅读了如何使用ant进行eclipse构建,包括自动构建。

  • 3个java项目在build.xmls中引用../build-common/{scripts}是不错的做法? (当这是一个不同的日食项目时)
  • app1和app2应该引用../lib1/target/lib.jar吗?怎么样?
  • 如果ant正在进行eclipse构建,我是否仍然维护.classpath(通过任何gui)?
  • 我假设eclipse用户不希望自动构建传播项目。正确的吗?

我不清楚是否有4个eclipse项目强制4个mercurial项目。 IF mercurialeclipse插件支持它,我可以使它成为一个hg项目(“顶部”)。但我不确定它的优点和缺点。 Team-> Commit可能会影响其他eclipse项目 - 对于eclipse用户来说这似乎是错误的吗?

  • 那么,4或1个hg项目?

Pre-eclipse,我通常会有一个顶级build.xml来构建子项目。即使eclipse构建不需要它,我也想支持完整的命令行构建。

  • 顶级build.xml在哪里?

此外,我怀疑在您的代码实际位于工作区/目录下之间存在一些细微差别。任何人都可以解释这对我的布局意味着什么?

非常感谢!

TLC

1 个答案:

答案 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直到它赶上。