Quel est l'avantage de la 'src/main/java" convention?
J'ai remarqué que beaucoup de projets ont la structure suivante:
- Projet
- bin
- lib
- src
- principal
- java
- RootLevelPackageClass.java
- java
- principal
Actuellement, je utiliser la convention suivante (que mes projets sont 100% java):
- Projet
- bin
- lib
- src
- RootLevelPackageClass.java
Je ne suis pas actuellement à l'aide de Maven mais je me demande si c'est une Maven convention ou pas ou si il y a une autre raison. Quelqu'un peut m'expliquer pourquoi la première version est si populaire ces jours-ci et si je dois adopter cette nouvelle convention ou pas?
Chris
- question connexe - stackoverflow.com/questions/22914927/...
Vous devez vous connecter pour publier un commentaire.
Principal avantage est d'avoir un
test
répertoire comme répertoire desrc
avec la même structure de répertoire que celui dansmain
:Tous les colis privé méthodes de
RootLevelPackageClass
sera visible, c'est à dire testable deTestRootLevelPackageClass
. Depuis le code de test est aussi la source de sa place devrait être soussrc
répertoire.src/main/resources
etsrc/test/resources
.Oui, c'est le Maven convention.
Même si votre projet est de 100% Java (comme d'habitude avec Maven btw), vous avez souvent des fichiers de ressources (qui vont à
src/main/resources
selon le Maven convention), ou une application web, ou ... tous ces éléments s'insèrent dans le Maven système facilement.Si vous êtes heureux avec votre version actuelle du système (quel qu'il soit), il n'y a aucune raison de passer à Maven. Sinon, ou si le démarrage d'un nouveau projet, vous pouvez évaluer vos options, y compris Maven.
D'autres l'ont déjà dit, c'est une Maven convention, je vais répondre à votre question plutôt:
Absolument aucun. Certes, il est utile de séparer les morceaux de code pour séparer les dossiers racine, mais, habituellement, vous pouvez obtenir la même chose avec
à la place. En fait, c'est une grande chose que Maven ne fait énormément mal: Il veut ajouter du contenu binaire à référentiel de code source qui est utilisé pour le contenu de texte seulement! Tous les binaires d'un contenu doivent être gérées en dehors du référentiel de code source, qui comprend des images dans les applications web, et ainsi de suite.
Mais OK, supposons que vous avez décidé de vivre dans la un peu malodorante Maven de l'écosystème; alors vous devriez, bien sûr, suivre les conventions de Maven aussi strictement que possible.
Son Maven convention.
Maven est basé sur Convention over configuration paradigme. C'est signifie: si vous ne suivez cette convention, vous devez configurer les sources sont situées. C'est le principal avantage à mon humble avis.
pom.xml
:s d'un milliard de lignes de long et qu'est-ce que tout cela XML complexes en général...? 🙂a
,a1
,a2
,x
,y
,z
il y a longtemps, n'est-ce pas?Oui, c'est une maven convention, mais même si vous n'êtes pas à l'aide de maven, il y a des avantages à l'utiliser:
Bien que je ne discute pas, il faut passer à chaque changement, lors du démarrage d'un nouveau projet, il n'y a vraiment aucune raison de ne pas l'utiliser, sauf si vous êtes en désaccord philosophique avec la façon dont il se casse le code.