Domanda

Ho enorme progetto che contiene circa 200 vasetti, quando mi preparo rilascio Maven preparare per tutti i vasetti, ma di sicuro non ci sono vasi che non è stato modificato dall'ultima compilazione in modo che non v'è alcun modo per verificare se barattolo è stato modificato dopo l'ultima costruire da scm? e escluderli?

Non voglio relase vasetti (più di 200) individualmente.

Ad esempio: voglio fare relase per il genitore, ma non voglio jar4 relase che non è stato modificato

-Parent

---------Module1

----------------jar1*

----------------jar2*

---------Module2

----------------jar3*

----------------jar4   
È stato utile?

Soluzione

Ad esempio: voglio fare relase per il genitore, ma non voglio jar4 relase che non è stato modificato

La sintassi per questo è

mvn -pl Module1,Module2/jar3 <your maven goals here>

(in questo caso si vuole costruire tutti Module1 e proprio jar3 di Module2)

Ora la parte difficile è come assemblare il parametro da -PL. Sono abbastanza sicuro non c'è modo Maven per farlo, quindi probabilmente si dovrà scrivere uno script di shell (o Ruby, Groovy, PERL pitone ecc sceneggiatura) che lo fa per te.

In sostanza, ciò che lo script deve fare:

  • look per tutte le directory del progetto Maven (directory che contengono un pom.xml) nella directory data, ordinarli in senso inverso (percorsi più profondi prima)
  • trovare tutti i file modificati l'intera gerarchia (usando svn, cvs o qualsiasi altra cosa le chiamate)
  • mappa ogni file modificato ad uno dei progetti (confrontando i percorsi), raccoglie tutti i progetti abbinati in una lista
  • Ora ottimizzare l'elenco facendo qualche ottimizzazione padre / figlio (se sono presenti tutti figli di un dato genitore, togliere i bambini e aggiungere il genitore). Fate questo più volte fino a raggiungere la gerarchia radice.
  • Dall'elenco rimanente, estrarre i percorsi relativi, unirsi a loro con una virgola e avviare il processo di Maven utilizzando tale valore per il parametro -pl.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top