Dans Maven, puis-je spécifier un chemin relatif au-dessus de mon projet actuel?
j'apprends maven à la volée tout en travaillant sur un projet avec un large ensemble de projets à construire.
actuellement, une ligne du build principal utilise un chemin absolu pour spécifier un répertoire qui fait partie du dépôt subversion mais "au-dessus" de son répertoire.
comme dans: "C:/work/project/eclipse" où "projet" est cochée dans le répertoire, et le pom.xml est dans "C:/work/project/src/subproject/pom.xml"
j'aimerais que cette ligne soit une adresse relative plutôt.
j'ai essayé de spécifier"../../Eclipse...."cela ne semble pas fonctionner.
cela pourrait aussi être parce que cette même variable est utilisée par le fichier pom d'un sous-sous-projet.
N'importe quel conseil (mis à part réécrire tout le désordre, que je ne sais pas assez au sujet de maven pour faire encore)?
2 réponses
avec Maven, les choses sont relatif au répertoire contenant le pom.xml
(qui est représenté par ${basedir}
et s'appelle le répertoire de base). Il y a cependant des situations où vous pourriez avoir à spécifier un chemin relatif:
- si
<parent>
pom n'est pas directement au-dessus d'un module donné en utilisant un<relativePath>
élément (voir cet exemple) - si les modules ne sont pas imbriqués (c.-à-d. Si vous utilisez une disposition Plane) en utilisant un relatif chemin d'accès dans les différents
<module>
éléments (comme dans cet exemple).
tout cela étant dit, Je ne suis pas sûr de comprendre exactement quelle est votre situation ou ce que vous décrivez.
peut-être devriez-vous montrer les parties pertinentes de votre POM si cela est possible.
Idéalement, le pom.xml
doit être dans le même répertoire que votre src
répertoire. Par exemple, supposons que vous ayez vérifié votre projet depuis svn dans un dossier C:/work/project
puis maintenez le principal pom.xml
C:/work/project
. src
devrait aussi être dans C:/work/project
.
vos autres sous-projets devraient être en C:/work/subproject1
,C:/work/subproject2
et ainsi de suite, chacun ayant leur propre pom.xml
. Ensuite dans le main pom.xml
Vous pouvez vous référer aux autres projets dans le
<modules>
<module>../subproject1<module>
<module>../subproject2<module>
</modules>