2010-04-23 15 views
2

J'ai créé plusieurs applications Web qui utilisent les mêmes fichiers statiques (css, js, images). Lorsque j'utilise svn pour le contrôle de version, j'utilise un référentiel externe (svn: externals) pour ajouter des fichiers au projet en cours. Par exemple:Organisation de projet en perforce

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

Je pourrais facilement l'utiliser dans leurs pages Web en ajoutant un lien comme/statique/...

Mais maintenant, notre société a déménagé Perforce. Comment puis-je prendre en charge la structure actuelle?

Nous utilisons également maven, je pense pour emballer ces fichiers comme un pot et l'utiliser comme une dépendance, mais alors mon éditeur (idée) ne voit pas que cette dépendance est js-scripts et styles. Et j'ai besoin de reconditionner et de déployer le fichier jar lors de la création de modifications mineures.

Comment utiliser maven correctement?

Répondre

2

Pour une solution basée sur Maven, vous pouvez utiliser WAR Overlays, le partage de ressources communes entre plusieurs applications Web est exactement ce à quoi servent les superpositions.

+0

Je suis désolé - j'ai vu forcément, j'ai vu superposition, et supposé que vous parliez de superpositions Perforce - j'aurais vraiment dû suivre votre lien. Je pourrais supprimer mes commentaires, mais cela laisserait vos commentaires à la dérive ... –

+0

J'ai posté ma propre réponse pour couvrir les deux types de superpositions :-). –

+0

J'ai décidé d'utiliser des superpositions de guerre. Mais là un problème pour moi. Est-il possible de créer et de déployer un fichier war à partir du répertoire de travail, celui créé par maven pour superposer? J'en ai besoin, car je n'utilise pas seulement, mais aussi édite des fichiers. Et j'ai besoin de synchroniser ces sources entre les applications. Je dois l'empaqueter et le déployer vers artificiel. – Chuprin

3

Perforce prend en charge la définition de plusieurs mappages entre le dépôt et votre disque dur dans le cadre des spécifications client. Vous pouvez, par exemple, définir les paramètres suivants:

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 ne traitera pas de multiples cartographie de la situation du dossier statique partagé par lui-même, vous devrez utiliser des jonctions/liens symboliques dans votre système de fichiers pour obtenir le comportement que vous vouloir. Un mot d'avertissement cependant, assurez-vous qu'un seul des dossiers statiques partagés est réellement géré par Perforce. Il peut devenir légèrement grincheux si les ressources sont modifiées sans qu'il soit au courant des changements. Vraiment cependant, vous êtes probablement mieux lotis (si vous le pouvez) - ayant une seule spécification espace de travail/client par projet - une pour proj1 et une pour proj2, chacune avec leurs propres mappages au dossier statique partagé. Si vous pouvez structurer les choses de manière appropriée et utiliser simplement maven pour construire chaque "projet", les choses iront plus facilement.

+0

Il a un problème. Perforce permet de mapper un dossier une fois par espace de travail. – Chuprin

0

Il semble que vous avez deux choix, les deux superpositions appelées:

a) Maven overlays comme @Pascal suggère. Alors vous une struction comme @Goyuix suggère de vérifier le contenu statique de Perforce. B) Perforce overlays b) Perforce overlays b) Perforce overlays b) Perforce overlays b) Perforce overlays b) Perforce overlays b) Perforce overlays, ce qui vous permettrait d'avoir deux espaces de travail/spécifications client différents, un par C'est la correspondance la plus proche de la structure de subversion que vous utilisiez auparavant.

Questions connexes