让我来描述一下情况。我有一个非常大的项目。现在由蚂蚁管理。现在我正在努力使这个项目与ivy和eclipse一起工作,我有很多问题。
首先,我没有在eclipse中工作过,这种"平坦"的工作空间概念对我来说相当奇怪。项目有一个树状结构,在根目录下有很多配置文件——类似库。属性(仅用于描述库版本)、ivysettings.xml和用于导入的模板构建文件。然后有很多项目嵌套在根目录中。
对于Eclipse,我现在使用的是ivyDE。第一个问题-如何在Eclipse中创建一个具有平面结构的树结构??我想要的是使子项目可以从根文件。正确和标准的做法是什么?
Second -如果子项目有自己的库版本,则它有库。属性文件在其目录下。这个文件首先被抓取,所以全局根库。属性不能覆盖特定于此子项目版本的库。这工作得很好,因为它是在蚂蚁,我可以在全局之前加载特定的属性文件。但是IvyDE -我发现只有一点我可以为它指定属性文件(可能是我错过了smthg)。那么我该怎么做呢?
常春藤特有的第三个问题。我怎么能只发布文档或源??我认为这是构型的问题。但是我真的很感激-如果你能给我一个例子-什么是在ivy文件和什么应该在ant文件??提前感谢。)
你读过ivy多模块构建教程吗?
下面的答案也给出了一些提示。
关于第一个:您不需要使用平面结构。项目路径可以在创建时更改。或者您可以在文件系统中移动它并重新导入它。使用工作集,您可以对项目进行分组,以获得更好的结构化视图。
对于第二个问题,我会简单地表示我支持Mark O'Connor。
对于第一个问题,是的,有一些方法可以在Eclipse中使用项目的树形结构,但是您在这里违背了系统,并且从长远来看将会受到惩罚。
我们已经成功地使用了以下策略:假设您的项目在SVN中,您可以利用SVN:externals来创建一个适用于Eclipse的等效平面结构。
这个想法是定义一个根SVN文件夹(可能在您现有的结构之外,比如兄弟文件夹)。然后在其中创建eclipse项目文件夹的平面结构,包括eclipse .project、.classpath和其他.settings/。externalBuilders配置文件。接下来,使用svn:externals,从原始svn位置引入源文件和配置文件,以组成适当的项目文件夹结构。你应该做完了。
有趣的好处:你可以保留这两个结构,只要你想。您可以让一些早期采用者处理Eclipse结构,而团队的其他成员则处理遗留的Ant签出。两组签出并提交相同的文件。只要您觉得Eclipse结构很稳定,就可以切换所有人,或者如果遇到太多问题,就可以放弃它。遗留结构一直为你而存在,你不会有一个过渡时期,在这个时期,你创建一个干净的构建的能力处于危险之中。