2011-04-07 4 views
1

J'espérais pouvoir scinder mes projets en sous-modules Maven et les réutiliser en tant que dépendances Maven pour d'autres projets.Réutilisation du module maven en tant que dépendances

D'après ce que je comprends du document, les modules enfants doivent spécifier leur projet parent. Cela les rend impropres à la réutilisation en tant que dépendances.

Cela rend la séparation dans le module beaucoup moins attractif IMHO. Ou est-ce que je manque quelque chose?

J'ai tendance à scinder des projets en composants lorsque j'ai besoin de les partager. Sinon, pourquoi s'embêter?

Quelqu'un peut-il élaborer à ce sujet?

Est-il possible de déclarer un module qui ne spécifie pas son parent? Comment pouvez-vous refactoriser une dépendance et tous ses projets dépendants si vous ne le pouvez pas?

acclamations

Répondre

1

relativePath est juste un soupçon au moment de la construction. Une fois que tous vos modules et parent (s) sont installés, vous pouvez vous référer aux modules individuels en tant que dépendances dans vos autres projets.

1

Comme je comprends de la doc, les modules enfants doivent préciser leur projet parent . Cela les rend incompatibles avec les dépendances .

définition d'un projet parent ne fait pas un module inadapté en tant que dépendance. La plupart des modules ont un pom parent, qui définit les dépendances/plugins communs et d'autres choses. Reportez-vous aux dépendances du ressort, par exemple.

Est-il possible de déclarer un module qui ne spécifie pas son parent?

Chaque module est un projet maven individuel. En tant que tel, il n'a pas besoin d'un parent. Typiquement, dans une organisation hiérarchique de modules, chaque module est dans un dossier et le pom parent est dans le dossier parent des modules. Le pom parent construit généralement tous les modules. En l'absence de pom parent, vous devrez construire chaque module individuellement. En l'absence de pom parent, vous devrez construire chaque module séparément.

Référez-vous également à this.

+0

Parent poms, et le projet pom sont utiles, pas de doute. Mais le doc dit que vous devez spécifier le parent dans un module.donc si vous voulez réutiliser, disons un module serveur d'un projet pour un autre projet, comment pouvez-vous le faire? ' | --- module serveur | --- pom.xml --- module client ' – nodje

+0

@nodje. Regardez les fichiers pom des modules de ressorts (spring-core ou spring-web). Ces modules peuvent être utilisés dans n'importe quel projet et ils ont une déclaration * parent *. – Raghuram

0

Les parents poms, et le projet pom sont utiles, pas de doute. Mais le doc dit que vous devez spécifier le parent dans un module. Donc, si vous voulez réutiliser, disons un module serveur d'un projet pour un autre projet, comment pouvez-vous le faire?

| 
--- server 
    | 
    --- pom.xml 
| 
--- client 
    | 
    --- pom.xml 
| 
--- webapp 
    | 
    --- pom.xml 
| 
--- Pom project 1 
    | 
    <modules> 
     <module>../server 
     <module>../client 
| 
--- Pom project 2 
    | 
    <modules> 
     <module>../server 
     <module>../webapp 

Avec l'exemple ci-dessus, selon le document, le projet de serveur est censé spécifier projet pom 1 en tant que parent, et le projet de pom 2 ainsi.

Comment gérez-vous un mélange de notion de modules et de dépendances dans un tel cas?

Questions connexes