2010-04-23 2 views
2

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

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

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

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

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

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

ответ

2

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

+0

Извините, я видел, что видел, что я видел наложение, и предположил, что вы говорите о наложениях Perforce - я действительно должен был следовать вашей ссылке. Я мог бы удалить свои комментарии, но это оставило бы ваши комментарии неуместными ... –

+0

Я опубликовал свой собственный ответ, чтобы охватить оба вида наложений :-). –

+0

Я решил использовать военные наложения. Но для меня одна проблема. Возможно ли создать и развернуть файл войны из рабочего каталога, созданного maven для наложения? Мне это нужно, потому что я не только использую, но и редактирую файлы. И мне нужно синхронизировать эти источники между приложениями. Мне нужно упаковать его и развернуть до искусственного. – Chuprin

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. Он может слегка запутаться, если ресурсы будут изменены из-под него, не зная об изменениях.

Действительно, вам, вероятно, лучше (если можно) - иметь одну спецификацию рабочего пространства/клиента для каждого проекта - один для proj1 и один для proj2, каждый со своими собственными сопоставлениями в общую статическую папку. Если вы можете правильно структурировать вещи и просто использовать maven для создания каждого «проекта», все будет идти гладко.

+0

У него одна проблема. Perforce позволяет сопоставить некоторую папку один раз за рабочее пространство. – Chuprin

0

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

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

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

Смежные вопросы