perforce中的项目组织

时间:2010-04-23 13:37:34

标签: maven-2 perforce project-organization

我创建了几个使用相同静态文件(css,js,images)的Web应用程序。 当我使用svn进行版本控制时,我使用外部存储库(svn:externals)将文件添加到当前项目中。 例如:

- Project_1 
---- Webapp 
-------- Static (external to static's repo) 
- Project_2 
---- Webapp 
-------- Static (external to static's repo)

我可以通过添加/ static / ...

等链接轻松地在网页中使用它

但现在我们的公司已经转向了perforce。 我如何支持当前的结构?

我们也使用maven,我认为将这些文件打包为jar并用作依赖项,但是我的编辑器(想法)没有看到这种依赖是js脚本和样式。 我需要在创建微小更改时重新打包和部署jar文件。

如何正确使用maven?

3 个答案:

答案 0 :(得分:3)

Perforce支持定义从软件仓库到硬盘驱动器的多个映射,作为客户端规范的一部分。例如,您可以设置以下内容:

Client Name: Sample_Maven
Client Root: c:\inetpub\wwwroot

//depot/Project_1/Webapp/... //Sample_Maven/Project_1/...
//depot/Project_2/Webapp/... //Sample_Maven/Project_2/...
//depot/Shared/static/... //Sample_Maven/static/...
... any other folder mappings you need to bring in and sync ...

Perforce本身不会处理共享静态文件夹情况的多个映射,您必须在文件系统中使用联结/符号链接来获取所需的行为。但请注意,确保只有一个共享静态文件夹通过Perforce实际管理。如果资源在不知道变化的情况下从中改变,它可能会略微变得脾气暴躁。

实际上,你可能会更好(如果可以的话) - 每个项目有一个工作区/客户端规范 - 一个用于proj1,一个用于proj2,每个都有自己的共享静态文件夹映射。如果你能够恰当地构建东西,只需使用maven来构建每个“项目”,事情就会更加顺利。

答案 1 :(得分:2)

对于基于Maven的解决方案,您可以使用WAR Overlays,在多个Web应用程序之间共享公共资源正是覆盖的目的。

答案 2 :(得分:0)

您似乎有两个选择,都称为叠加:

a)Maven overlays@Pascal表示。然后,像@Goyuix这样的结构建议检查Perforce中的静态内容。

b)Perforce overlays,它允许您拥有两个不同的工作空间/客户端规范,每个项目一个,并在每次导入静态内容到文件系统中的预期位置。这是与之前使用的subversion结构最接近的匹配。