有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何将JavaCVS web项目转换为基于maven的web项目?

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

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

-WebContext
------|src
--------|com。公司
------|WEB-INF
------|页数

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

-WebContext
------|src
--------|main
------------|java
------------|测试
------------|资源
------------|webapp

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

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

  2. 有没有最好的方法可以在不干扰现有结构的情况下转换为maven项目

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

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

谢谢 多瑞拉吉


共 (1) 个答案

  1. # 1 楼答案

    可以将Maven配置为在src而不是src/main/java中查找代码。但是,如果您想遵循推荐的Maven项目布局,并将代码放在src/main/java中,我建议您首先从CVS(切换到类似GitSVN)的地方

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

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

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