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)?

23
demandé sur Pascal Thivent 2010-01-30 01:35:53

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.

27
répondu Pascal Thivent 2010-01-30 07:48:45

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.xmlC:/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>
12
répondu Thunderhashy 2013-10-09 17:58:28