-1

我想使用 maven 作为构建/发布管理/管理我们 Web 应用程序的依赖项工具。

我们的Web应用项目目录结构如下

-WebContext
------|src
--------|com.company
------|WEB-INF
------|pages

根据 Maven,目录结构应如下所示

-WebContext
------|src
--------|main
------------|java
------------|test
-- ----------|资源
------------|webapp

由于代码(旧目录结构)由 SCM(CVS)维护,如果我们转换为新的 maven 目录结构,以下是问题

  1. 如果我更改了目录结构,那么需要在 CVS 中重新提交文件吗?如果是,则不可能提交所有文件,因为项目规模很大,并且 SCM 中存在许多标签并且存在客户端版本。

  2. 有没有最好的方法来转换为 maven 项目而不干扰现有结构?

  3. 当前资源位于根目录中,让它们保持原样,而不是移动到 src/main/resources

我认为这是所有人的共同问题,希望有一个解决方案,任何人都可以指导我使用 maven 作为构建/发布管理工具。

谢谢 Dhorrairaajj

4

1 回答 1

0

可以将 Maven 配置为在src而不是src/main/java. 但是,如果您想遵循推荐的 Maven 项目布局并将您的代码放入 中src/main/java,我建议您先从 CVS 切换到GitSVN之类的东西。

CVS 独立跟踪每个文件的修订,由文件的路径标识。如果你移动或重命名一个文件(改变了它的路径),CVS 认为你删除了它并创建了一个新文件,这意味着如果你查看(新)文件的修订历史,你不会看到所做的任何更改在移动或重命名之前。就 CVS 而言,旧路径和新路径是完全不同的、不相关的文件。

一些 CVS 用户通过移动或重命名包含修订历史的关联文件来解决此限制,v,但这实际上会更改历史:如果您签出项目的早期修订,则文件将位于新位置,就好像它从一开始就在那里。如果您有基于旧版本的分支,那么这些分支上的文件位置也会发生变化。这可能会导致旧版本或分支的构建失败,因为该文件不在构建系统期望它在这些版本中的位置。撇开构建问题不谈,如果 SCM 存储库对项目历史的记录不准确,那么它的用处就很有限。

较新的 SCM 系统(如 Git 和 SVN)能够正确处理移动/重命名,并提供比 CVS 更多的其他改进。这是将您的项目转移到不那么陈旧的系统的好机会。

于 2014-10-01T14:43:21.047 回答