2014-10-01 72 views
-1

我想使用maven作为构建/发布管理/管理我们的Web应用程序的依赖关系工具。如何将Java CVS Web项目转换为基于Maven的Web项目?

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

-WebContext
------ | SRC
-------- | com.company
------ | WEB-INF
------ |

页按行家,目录结构应如下

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

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

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

  2. 有没有最好的方式转换为maven项目而不影响现有结构?

  3. 目前的资源都在根目录下,让他们能够因为它是不是移动为src /主/资源

我认为这是常见的问题对于所有希望有办法解决这个,任何人都可以指导我使用maven作为构建/发布管理工具。

感谢 Dhorrairaajj

+0

希望这个链接可以帮助你轻松地:http://www.mkyong.com/maven/how-to-convert-java-web-project-to-maven-project/ – Imran 2014-10-01 14:09:37

+0

谢谢指出一个链接,但实际上,我正在寻找SCM库(CVS)在转换为maven结构后如何影响项目结构。 – Dhorrairaajj 2014-10-06 04:36:02

回答

0

这是可能的配置Maven来寻找你的代码src而非src/main/java。但是,如果您想遵循推荐的Maven项目布局并将您的代码放入src/main/java,我建议首先从CVS(类似于GitSVN之类)切换。

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

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

像Git和SVN这样较新的SCM系统能够正确处理移动/重命名,并提供比CVS更多的改进。这是将项目转移到不太古老的系统的好机会。

+0

感谢您的详细解释,我们的项目由许多(100+)标签和不包含。的分支机构是否应该将SVN/Git设置为精确的存储库而不影响现有设置,并且能够基于分支机构和标签构建项目? – Dhorrairaajj 2014-10-06 04:12:32

+0

有一些工具可以将CVS存储库转换为像Git或SVN这样的新系统,包括所有的分支和标签。 – Wyzard 2014-10-07 03:30:41

相关问题