extraire le composant de projet java maven en tant que projet séparé


Je suis nouveau sur Maven, et j'ai décidé de commencer avec lui sur un projet que j'ai commencé à développer récemment. Le projet est une bibliothèque Java qui analyse les requêtes de conversion d'unités écrites en langage naturel et effectue la conversion d'unités qui a été interprétée à partir de la requête en langage naturel.

Pour ce projet, j'avais besoin d'une bibliothèque d'inflexion pour Java (pluraliser/singulariser les mots), et après avoir réfléchi à certaines options, j'ai décidé de développer la mienne. Il s'avère qu'il y a eu un certain intérêt de certaines personnes utilisent cette fonctionnalité d'inflexion seule.

La question est donc, quelle serait la meilleure approche pour séparer les classes fournissant des fonctionnalités d'inflexion (qui sont dans un paquet séparé dans mon projet de conversion d'unité) en un nouveau projet Maven distinct, publier cette bibliothèque d'inflexion dans une sorte de référentiel Maven public, et le spécifier comme une dépendance de ma bibliothèque de conversion De cette façon, quelqu'un d'autre qui veut utiliser l'inflexion bibliothèque serait en mesure de le faire en le mettant comme dépendance de leurs propres projets.

Notez que ma question inclut la partie "publier sa bibliothèque dans un repo Maven afin qu'elle puisse être une dépendance d'autres projets". Je suis totalement nouveau sur Maven, donc je n'ai vraiment pas saisi le tout. Je me limite simplement à mettre en place les dépendances de mon propre projet, construire, exécuter, etc.

Author: Ernesto, 2012-05-11

1 answers

Pour l'Open Source:

  • Rendre le code source disponible, par exemple à sourceforge.net
  • Assurez-vous que votre POM hérite (directement ou indirectement) de:

:

  <parent>
    <groupId>org.sonatype.oss</groupId>
    <artifactId>oss-parent</artifactId>
    <version>7</version>
  </parent>

Pour Les Sources fermées:

Recommandations Générales:

  • Pour le nom du paquet, commencez par le nom de domaine inverse, par exemple.
    • org.myproject.mycomponent (si vous avez un domaine personnalisé pour ce projet)
    • com.mycompany.myproject.mycomponet (si votre entreprise est propriétaire du domaine mycompany.com)
    • net.sourceforge.myproject.mycomponent (si vous hébergez votre code source à myproject.sourceforge.net et n'ont pas de domaine personnalisé)
  • groupId:
    • Utilisez le début du nom du paquet tel que com.mycompany.myproject
    • Utilise généralement le même groupId pour tous les projets Maven dans un seul référentiel VCS
  • artifactId: assurez-vous qu'il est assez unique car il sera le début du nom de fichier du jar, par exemple mycompany-myproject-mycomponent
  • Configurer un serveur CI tel que Jenkins
    • Assurez-vous que le serveur CI est exécuté par un utilisateur système dédié
    • Ajoutez les informations d'identification nécessaires aux paramètres.fichier xml de l'utilisateur CI
    • Configurer une tâche pour "clean install"
    • Configurer un travail pour libérer la bibliothèque (Jenkins a un plugin spécial pour prendre en charge les versions Maven)
  • Pensez à transformer votre jar en un bundle OSGi
 1
Author: Puce, 2012-05-11 19:21:44