Nous avons le scénario suivant avec notre projet: P>
Je recherche des suggestions quant à la meilleure façon de le faire en termes d'outils et de configuration de projet. P>
Nous utilisons la fourmi actuellement, mais j'aimerais éviter d'être enterré dans plus de fourmi. Quelqu'un a-t-il fait cela avec Maven? P>
J'ai vu beaucoup d'articles sur la manière de créer une application Web qui dépend d'une application Java, mais rien sur une application Web en fonction d'une autre application Web. P>
merci! p>
5 Réponses :
sonne comme Maven superposition de guerre fait ce que vous voulez. p>
Maximdim, j'ai essayé d'utiliser des superpositions de guerre, mais avec elle, je ne peux pas être déployé à chaud de modifications sur le projet parent. Lorsque je modifierai une classe ou un fichier statique (.js, .css) sur le projet parent, il n'est pas reflété sur l'application déployée. J'utilise Netbeans. Une idée de la façon de faire ce travail? Cela entrave gravement le développement.
Ceci est un peu plus impliqué mais à un niveau élevé, nous le faisons comme ci-dessous. Nous avons la plate-forme principale de l'interface utilisateur de la plate-forme de base en plusieurs modules de guerre basées sur les fonctionnalités (Connexion UI, catalogue-MGMT-UI, etc.). Chacun de ces modules de base est personnalisable par l'équipe du client. p>
Nous fusionnerons tous ces modules pendant la construction de 1 module de guerre. Les règles de fusion sont basées sur le plugin de l'assemblage de Maven. P>
Vous commencez généralement à partir du code source Java. Ce que je ferais, c'est utiliser Maven et démarrer un nouveau projet WebApp vide avec celui-ci: http://maven.apache.org/guides/mini/guide-webapp.html p>
Après avoir eu la nouvelle structure de projet vide, copiez-le le code source Java à celui-ci ( Une fois que vous avez terminé tout cela, vous pouvez utiliser code> MVN Clean Package CODE> pour créer une norme guerre code> s n'incluez pas le code source Java, juste les classes compilées sous
web-inf / classes code> ou
JAR code> S sous
s -Inf / libs code>. P>
SRC / MAIN / JAVA CODE>) et remplissez la liste des dépendances dans
pom.xml code> . p>
WAR code> fichier que vous pouvez déployer sur tomcat. p>
Vous voudrez peut-être envisager de concevoir votre application principale avec des fonctionnalités Pluggable en fonction des interfaces.
Par exemple, disons que votre application principale a un concept d'un objet Vous pouvez ensuite coder votre application principale (logique de connexion, logique d'enregistrement, etc.) sur cette interface. Vous voudrez peut-être fournir une implémentation par défaut de cette interface dans votre application principale, telle qu'un document de base de données code> qui serait effectivement une DAO. P> Vous définissez ensuite le utilisateur code> et doit fournir un support commun. Tâches basées sur les utilisateurs. Créez un
Userstore code> interface; p>
USERSTORE En tant que haricot de printemps et injectez-le si nécessaire; P>
<bean id="userStore" class="com.mycorp.auth.DatabaseUserStore">
<constructor-arg ref="usersDataSource"/>
</bean>
Dans Eclipse, il y a un moyen de «natif» wtp pour le faire. Il utilise principalement des dossiers liés et un petit piratage en .Settings / org.eclipse.wst.commounent fichier. Vous pouvez lire l'article à ce sujet à http://www.informit.com /Articles/article.aspx?p=759232&eqnum=3 Le chapitre intitulé "Division d'un module Web en plusieurs projets". Le problème avec ceci est que le dossier lié doit être relatif à certains Variable de chemin peut être défini dans la fenêtre / Préférences / General / Espace de travail / Onglet Ressources liées. Sinon, la définition de dossiers liés (peut être trouvée dans le fichier .Project dans la racine de projet) contiendra un chemin de poste de travail. La variable du chemin devrait pratiquement être la racine de l'espace de travail. Cette solution fonctionne bien avec WTP, Déployer et tout le reste fonctionne comme si cela devrait. P>
La deuxième solution consiste à utiliser la fourmi pour elle. Oublie. Vous le regretterez profondément. P>
La troisième solution consiste à utiliser Maven pour cela. Vous pouvez oublier le confort de la publication WTP si vous ne faites pas quelques astuces. Utilisez des superpositions de guerre comme d'autres suggérées. Assurez-vous d'installer M2eclipse, M2eclipse Extras. Il y a un plugin d'extension publié récemment, qui peut vous aider. Décrit chez Ce blog . Je n'ai pas essayé, mais ça va bien. De toute façon, Maven n'a rien à voir avec des dossiers liés, alors je pense que même la première solution et cette superposition maven peut vivre ensemble si nécessaire. P>
Comme pour les constructions sans tête, vous pouvez utiliser DobleSeclipse pour la première solution. C'est mort (par moi) maintenant, mais travaille toujours :). Si vous utilisez la superposition Maven + Eclipse Stuff, les constructions sans tête sont recouvertes de Maven. P>