Domanda

Ho due progetti, "Appa" e "App", che dipende ciascuno da un terzo progetto, "comune".Sono in procinto di spostarli da ANT a Maven, ma sto avendo qualche difficoltà a capire il modo migliore per farlo a Maven.La mia struttura della tua cartella è simile a questa:

root
+ common  
+ appA  
+ appB  
.

Sono stato in grado di aggiungere un genitore Pom.xml alla radice e avere comuni, APPA e APPB come moduli di questo progetto genitore per ottenere Appa e App per costruire, ma questo non è quello che voglio, un Pom radice.xml non è appropriato da quando APPA e APPB sono progetti completamente non correlati.

Vorrei che APPA e APPB siano progetti separati Maven che dipendono da entrambi dal terzo progetto comune e lo costruirà se necessario, in modo che io possa entrare nella cartella Appa o APPB e digitare "Pacchetto MVN" per costruireAPPA + Comune o APPB + comune, rispettivamente.È così che ho impostato in formica ma potrebbe non esserci un parallelo appropriato a Maven.Qualsiasi aiuto o nudge nella giusta direzione è molto apprezzato:)

È stato utile?

Soluzione

.

(...) Ma questo non è quello che voglio, una root pom.xml non è appropriata da quando APPA e APPB sono progetti completamente non correlati.

Allora non farlo, non utilizzare l'aggregazione se non si desidera e dichiarare semplicemente common come dipendenza dal POM di appA e nel POM di appB.Qualcosa del genere:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>foo</groupId>
  <artifactId>appA</artifactId>
  <packaging>jar</packaging>
  <version>X-SNAPSHOT</version>
  ...
  <dependencies>
    <dependency>
      <groupId>bar</groupId><!-- at your discretion -->
      <artifactId>common</artifactId>
      <version>Y.Z-SNAPSHOT</version>
    </dependency>
    ...
  </dependencies>
  ...
</project>
.

Le dipendenze vengono risolte attraverso il repository locale in modo da poter generarecodicitagcode il progetto mvn install prima (e dopo qualsiasi modifica per renderli "visibili").

Durante lo sviluppo, una pratica comune è di importare progetti dipendenti nel proprio IDE e configurarli a dipendere dal progetto all'interno lo spazio di lavoro (VS Binary Depenencies).Ciò consente di risparmiare il passaggio common per apportare modifiche visibili.La maggior parte degli IDES supporta questo approccio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top