Je travaille actuellement sur deux projets simultanément: P>
Comment puis-je configurer Maven pour utiliser le projet OSAN comme une dépendance au moins de friction, étant donné que je développe souvent les deux en tandem? P>
4 Réponses :
Je pense que vous avez probablement besoin de mordre la balle et de mettre en place un pom pour votre arbre de projet OSS. C'est la partie douloureuse (comme vous auriez besoin de chasser les détails de la spécification des chemins de ressources pour divers plugins impliqués en fonction du type d'application OSAN (c'est-à-dire web, etc.)). Bonne nouvelle est que ceci est un effort unique. P>
Une fois que cela est fait, votre projet principal peut faire référence au projet OSS (enveloppé) comme une dépendance. Ici, une structure multi-projets (maven standard) appliquerait. P>
La solution que j'ai utilisée est la tâche Maven-ant ( http: //maven.apache .org / ant-tâches / ). p>
J'ai ajouté une tâche d'installation sur le fichier build.xml, qui installe la compilée .jar dans le repo local. p>
Tout en ajoutant une POM à part entière au projet serait définitivement la meilleure approche, c'est une partie de travail majeure et inflige Maven sur le projet (où les autres utilisateurs préféreraient ne pas l'utiliser). P >
Si le projet OSS a des dépendances - Créez un POM avec ces dépendances (votre projet les utilisera comme des dépendances transitives) et installer cet artefact et pom dans le référentiel local. Si le projet OSS n'a pas d'autres dépendances est encore plus simple - le POM est généré automatiquement lors de l'installation.
pour les deux cas utilisez Maven-Install-plugin . P>
mvn install:install-file -Dfile=your-artifact-1.0.jar \ [-DpomFile=your-pom.xml] \ [-Dsources=src.jar] \ [-Djavadoc=apidocs.jar] \ [-DgroupId=org.some.group] \ [-DartifactId=your-artifact] \ [-Dversion=1.0] \ [-Dpackaging=jar] \ [-Dclassifier=sources] \ [-DgeneratePom=true] \ [-DcreateChecksum=true]
Je peux penser à plusieurs solutions: P>
Mavenisez le projet OSS existant. strong> Ceci est bien sûr l'option "idéale", mais souvent non réalisable (même si vous introduisez le nouveau système de construction en parallèle de l'existant). Le projet a probablement une structure de projet existante qui diffère de la mise en page standard de Maven. La modification de la mise en page existante et de la création du script ne peut pas être souhaitée par les développeurs, adaptant une construction maven à utiliser une mise en page non standard peut être douloureuse. Dans les deux cas, vous êtes vissé. P> li>
On dirait que vous choisissez l'option 3. Je pense que c'est un bon choix pour une victoire rapide. P>