2017-09-27 4 views
0

Je travaille actuellement sur un projet avec Java dans IntellJ, où différents projets ont besoin des mêmes classes de modèles. Cela pourrait être par exemple une application Spring et une application desktop, qui ont toutes deux besoin d'un modèle "Student". Quelqu'un a-t-il une idée d'une «meilleure approche pratique» sur la façon de gérer la classe «Étudiant» dans IntelliJ, de sorte que les deux projets (le printemps et l'application de bureau) ont accès à la classe «Étudiant» ?Intellij gestion des modèles de domaine

Je sais qu'il y a des modules qui peuvent dépendre l'un de l'autre. Cependant, je préférerais avoir le Spring et l'application de bureau dans leurs propres dépôts git. Comme les modèles changent souvent au cours du développement, je n'aime pas non plus l'idée de construire un fichier JAR en premier ou de l'importer via une dépendance Maven privée.

Des expériences?

+0

Créez un projet maven pour les classes de modèle et importez-le en tant que dépendance dans d'autres projets. Soit localement, soit en déployant le modèle jar dans un repo distant. – Bajal

+0

@Bajal: Y at-il un moyen d'automatiser ce processus, donc je n'ai pas à reconstruire manuellement le pot à chaque fois, le modèle change? – mikeroneer

+0

Si vous avez un pipeline CI/CD, vous pouvez mettre des hooks de commit pour faire la reconstruction. Ceci est ce que nous faisons – Bajal

Répondre

0

Vous avez besoin de trois projets, un pour le serveur, un pour le client et un pour les bibliothèques partagées. La classe Java Student ira dans les bibliothèques partagées et sera construite et distribuée comme un pot. Les deux autres projets doivent avoir des dépendances sur ce pot.

Pour permettre un développement rapide, vous devez ensuite créer un pom parent, un niveau au-dessus de ces trois projets, qui les agrège en modules dans un seul projet. Cela vous permet de mettre à jour tous les trois projets comme s'ils étaient un dans intellij, même si la dépendance est vraiment sur un pot. C'est ce pom parent que vous voulez charger dans intellij. Maven prendra alors en charge les dépendances au moment de la mise à jour - le jar sera construit en premier, puis le client projettera (dans n'importe quel ordre). Cela ne devrait vraiment être appelé de CI.