Ho una configurazione tradizionale maven con progetto padre e un numero di moduli che sono sottoprogetti. Quando eseguo mvn deploy
, esegue l'intero ciclo di vita (compreso test
) fino a deploy
per ciascun progetto in sequenza (profondità-prima). Vorrei evitare di distribuire sottoprogetti se uno qualsiasi dei progetti non riesce a creare. In altre parole, mi piacerebbe che lo deploy
dell'intero progetto padre fosse "tutto o niente". C'è un modo per raggiungere questo obiettivo?Fare in modo che tutti i moduli del progetto padre maven testano tutti i moduli prima di distribuirli.
risposta
Se il repository remoto è un esempio Pro Sonatype Nexus, quindi l'impianto "messa in scena" di Nexus Pro permetterà per la pubblicazione atomica al corretto repository.
Se si utilizza Jenkins, esiste un plugin distribuzione ritardata che sarà schierare tutti i vostri artefatti come un post-generazione (o molto di post-generazione) l'azione (non importa troppo che repository manager si utilizza)
Infine, uno dei miei obiettivi a medio-lungo termine per il MRM-maven-plugin @ Codehaus è quello di consentire stadiazione locale di distribuzione in modo che si sarà in grado di fare qualcosa di simile
mvn mrm:catch-deploy deploy mrm:push-deploy
MA che l'ultimo non è ancora stato scritto!
Maven non può farlo (ancora). Attualmente, il processo di compilazione esegue tutti i target su ciascun modulo individualmente. Ci sono piani per permettere obiettivi per vedere il quadro generale, ma questo è probabilmente per Maven 4.
Nel frattempo, è possibile utilizzare un piccolo script di shell:
mvn clean install && mvn deploy -DskipTests=true
La prima esecuzione si basa tutto. La seconda esecuzione non farà molto (tutto il codice è già compilato e i test lunghi sono saltati), quindi è piuttosto veloce.
In realtà preferisco questo approccio perché il mio script sostituisce anche eventuali elementi esistenti distributionManagement
con quelli per la cache della mia azienda. Ciò significa che posso implementare qualsiasi progetto per la mia azienda senza dover apportare alcuna modifica al POM originale. Ecco lo script:
#!/bin/bash
if [[ ! -e pom.xml ]]; then
echo "Missing pom.xml" 1>&2
exit 1
fi
sed \
-e '/<distributionManagement>/,/<\/distributionManagement>/d' \
-e '/<\/project/d' \
pom.xml > pom-deploy.xml || exit 1
cat >> pom-deploy.xml <<EOF
<!-- ADDED BY $0 -->
<distributionManagement>
... whatever you need ...
</distributionManagement>
</project>
EOF
mvn -f pom-deploy.xml clean install && \
mvn -f pom-deploy.xml deploy -DskipTests=true && \
rm pom-deploy.xml
exit 0
- 1. Nascondere tutti i moduli aperti
- 2. Come fare a Delphi per ri-salvare tutti i moduli?
- 3. Importare tutti i moduli in una directory
- 4. Come includere tutti i moduli dal progetto pom
- 5. Esiste un modo per eseguire i moduli RequireJS prima che tutti gli elementi vengano caricati?
- 6. Come generare un grafico della dipendenza tra tutti i moduli di un progetto Maven?
- 7. JS angolare che genera PDF - tutti i moduli creatore-creatore?
- 8. Python: personalizzato di registrazione in tutti i moduli
- 9. Posso importare i moduli babel-polyfill piuttosto che tutti?
- 10. È possibile trovare tutti i moduli che implementano determinati protocolli?
- 11. Android Studio - Aggiungi dipendenza a tutti i moduli
- 12. Raccogliere tutti i moduli Python utilizzati in una cartella?
- 13. Impostare la modalità rigorosa in PowerShell per tutti i moduli
- 14. È possibile installare tutti i moduli mancanti per un'applicazione nodo?
- 15. Come rendere absolute_import l'impostazione predefinita in tutti i moduli
- 16. Python: come importare da tutti i moduli in dir? Struttura
- 17. Come posso elencare tutti i moduli in un repository CVS?
- 18. Creare un albero di moduli progetto maven?
- 19. Moduli multipli in visualizzazione MVC: ModelState applicato a tutti i moduli
- 20. Rimuovere tutti i moduli VBA dal file excel?
- 21. Errore Netbeans "non tutti i moduli possono essere abilitati"
- 22. Cabal - Esporre tutti i moduli durante la creazione della libreria
- 23. Disinstallare tutti i moduli Perl installati da CPAN
- 24. azione Esegui dopo tutti i moduli requirejs vengono caricati
- 25. Evento quando tutti i moduli mdi sono chiusi
- 26. Come si trovano tutti i moduli e le classi all'interno di un modulo, in modo ricorsivo?
- 27. Maven: Il modo migliore per cambiare SNAPSHOT in versione Release per i moduli padre/figlio durante il rilascio?
- 28. In che modo Orchard risolve i riferimenti nei moduli?
- 29. Elenca tutti i moduli che fanno parte di un pacchetto python?
- 30. Come utilizzare il file master pom per eseguire il checkout di tutti i moduli di un'applicazione Web e creare tutti i moduli
Sto cambiando la risposta accettata a questo perché ritengo che tu abbia ragione a suggerire di utilizzare un server CI per questo anziché per Maven, questo è l'approccio che prenderò. – Ramon
Stephen, a quale plugin di Jenkins ti riferisci per l'implementazione ritardata? –
Non si riferisce a nessun plug-in specifico –