Quelles sont certaines conventions de répertoires supplémentaires pour les projets Maven?

StackOverflow https://stackoverflow.com/questions/522197

  •  22-08-2019
  •  | 
  •  

Question

Maven 2 utilise une mise en page de répertoire standard pour les projets, documenté ici:

http: //maven.apache .org / guides / mise en place / mise en place à partir du répertoire standard-layout.html

Ce que je me demande est: Y at-il des conventions recommandées pour d'autres projets en plus de la bibliothèque ordinaire à la vanille Java, Java EE et des projets WebApp? Plus précisément, où placer les fichiers de fourmis, les scripts de démarrage, les fichiers de configuration, des exemples d'applications, etc.

De plus, quelle est la convention pour placer des fichiers en dehors de l'arborescence src / répertoire? Par exemple, est-il commun de placer la documentation sous doc / (comme frères et soeurs de src)?

Y at-il une page où ces conventions sont compilées? Dans le cas contraire, d'autres lecteurs peuvent fournir des exemples de leurs propres projets?

Était-ce utile?

La solution

Je ne pense pas qu'il y ait une mise en page officielle pour les applications de bureau, mais c'est la mise en page que nous utilisons pour nous.

  • src / main / config -. Les fichiers de configuration, copié et filtré à $ {} project.build.directory / config
  • src / main / scripts - sh, chauve-souris, README et autres fichiers texte clair qui sont copiés et filtrés à $ {} project.build.directory
  • .
  • src / main / bin -. Les fichiers binaires pas filtré et copié à $ {} project.build.directory
  • src / main / build -. Tous les scripts supplémentaires, des fichiers de fourmis, ou les ressources utilisées par le processus de construction, mais non inclus dans l'application
  • src / main / montage - descripteur de montage pour créer l'ensemble des applications
  • .
  • dépendances de copie à $ {} project.build.directory / lib en utilisant le plugin maven-dépendance.
  • Les points bonus si vous utilisez un pot de descripteur d'assemblage partagé qui comprend les répertoires config et lib ainsi que les types de fichiers standard pour partager avec tous vos projets. Un bon jeu de types de fichiers par défaut pour inclure est .sh, .bat, .exe et avec des autorisations exécutables; .jar, .zip, txt, .pdf, .xml, .properties, .conf, .ico, .png, .jpg avec des autorisations standard.
  • Ajoutez le répertoire config et lib / préfixe au classpath en utilisant le plugin maven-pot pour faire un pot runnable.
  • Ajoutez un profil d'installation qui construit un assemblage de votre application en utilisant le plugin maven-assembly et votre descripteur d'assemblage. Cet ensemble peut alors être consommé par un projet d'installation séparée si nécessaire.
  • Évitez de mettre quoi que ce soit d'autre au src / niveau. Au lieu de mettre la documentation à l'intérieur du src / site / répertoire (par exemple. Src / site / sphynx) ou src / doc si vous avez vraiment besoin.
  • Mettez toute la configuration ci-dessus dans une pom-mère / entreprise de partager avec tous vos projets. référence simplement maven-dépendance, maven-ressources, maven-pot et plugins maven-montage en vous projetez de construire une application entière avec presque aucune configuration (ne pas oublier de mettre la classe principale pour le plugin maven-pot) .

Autres conseils

Le dossier principal je place les fichiers de configuration supplémentaires dans est sous src / main / java / ressources. Habituellement, je créé des sous-répertoires là-dessous. Les tests peuvent avoir leurs propres fichiers de configuration src / test / ressources.

Vous pouvez utiliser des directives dans la section de construction du pom.xml pour spécifier les répertoires de ressources supplémentaires et où copier des fichiers à des endroits spécifiques dans le répertoire cible. Habituellement, une convention se pose pour la langue ou le cadre que vous essayez d'utiliser. Dans ce cas, le désordre peut être caché dans un pom.xml parent

Voir http://maven.apache.org/pom.html#Resources

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top