Организация проекта в исполнении - PullRequest
2 голосов
/ 23 апреля 2010

Я создал несколько веб-приложений, которые используют одни и те же статические файлы (css, js, images).Когда я использую svn для контроля версий, я использую внешний репозиторий (svn: externals) для добавления файлов в текущий проект.Например:

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

Я мог бы легко использовать его на своих веб-страницах, добавив ссылку вроде / static / ...

Но теперь наша компания перешла на работу.Как я могу поддержать текущую структуру?

Мы также используем maven, я думаю, чтобы упаковать эти файлы как jar и использовать в качестве зависимости, но тогда мой редактор (идея) не видит, что это зависимость - js-скрипты и стили.И мне нужно перепаковать и развернуть файл JAR при создании незначительных изменений.

Как правильно использовать Maven?

Ответы [ 3 ]

3 голосов
/ 23 апреля 2010

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 для создания каждого «проекта», все пойдет более гладко.

2 голосов
/ 23 апреля 2010

Для решения на основе Maven вы можете использовать WAR-оверлеи , для которых совместно используются общие ресурсы между несколькими веб-приложениями.

0 голосов
/ 23 апреля 2010

Кажется, у вас есть пара вариантов, оба называются оверлеями:

a) оверлеи Maven , как подсказывает @ Pascal .Тогда вы, как @ Goyuix , предложите извлечь статический контент из Perforce.

b) Выполните оверлеи , что позволит вам иметь два разных рабочих пространства / клиентспецификации, по одному для каждого проекта, и в каждом импортировать статический контент в ожидаемое место в файловой системе.Это наиболее близкое совпадение со структурой Subversion, которую вы использовали ранее.

...