2010-10-28 8 views
8

Je suis nouveau à Maven et j'ai lu tous les tutoriels du matin (outil étonnant).structure de répertoire Maven

Ce nouveau projet Java que j'ai commencé à regarder n'utilise cependant pas la structure de répertoire par défaut. Au lieu de src/main/java pour les sources, il utilise quelque chose comme src/org/myapp.

Lorsque j'exécute mvn package sur le projet (où pom.xml se trouve), j'obtiens un message indiquant qu'aucune source n'a été compilée car elle n'est pas capable de les trouver (le chemin source étant différent).

Existe-t-il un moyen de spécifier votre propre chemin source dans Maven?

Répondre

10

Ajouter sourceDirectory à la balise build dans le fichier pom.

<build> 
    ... 
<sourceDirectory>src</sourceDirectory> 
    ... 
</build> 

Here est la section appropriée dans les documents maven.

+0

Mais est-ce que créer un nouveau projet à partir du menu eclipse et l'utiliser pour Maven est une bonne pratique? – zengr

+0

Je ne pense pas que ce soit un nouveau projet. On dirait qu'il essaie de migrer un projet existant (avec une structure de répertoires différente) vers maven. Mais je peux me tromper ... – dogbane

+0

@zengr, je n'utilise pas Eclipse –

1

Comment avez-vous créé le projet? L'idée de créer un nouveau projet maven est: mvn archetype:create puis suivez les instructions.

Lire this pour plus de détails

Mise à jour Prolonger de réponse en fonction de l'URL:

mvn archetype:create -DgroupId=[your project's group id] -DartifactId=[your project's artifact id] 
2

En théorie, vous pouvez utiliser une structure de répertoire non standard pour votre projet Maven. En pratique, vous pouvez constater que divers plugins Maven et intégrations IDE ne fonctionneront pas correctement. Je vous conseille donc de réorganiser la structure de votre répertoire de projet pour être conforme à ce que Maven attend ... avant d'avoir beaucoup d'historique de contrôle de version et d'autres choses qui rendront la réorganisation plus pénible.

+3

Je ne suis pas d'accord. Il existe des moyens standard pour un plugin bien agencé de savoir quelle est la structure du répertoire. Un plugin qui utilise 'model.getBuild(). GetSourceDirectory()' trouvera toujours le répertoire source, peu importe où il se trouve. Et un plugin qui vérifie simplement 'nouveau fichier (" src/main/java ")' est probablement un plugin assez mauvais à d'autres égards, aussi. –

+0

Mais je suis également d'accord que c'est une bonne idée d'utiliser la structure standard si vous avez le choix. –

+0

@seanizer - le problème est que les plugins et autres éléments ne seront probablement pas aussi bien testés avec les POM qui utilisent des structures de répertoires non standard. Et vous obtenez probablement une réponse enthousiaste des développeurs de Maven à tous les bugs que vous découvrez. –

Questions connexes