Ho un manufatto che dovrebbe essere costruito per diverse piattaforme di destinazione:versioni artefatto Sincronizzazione su piattaforme con processo di rilascio Maven
- Linux x86
- di Windows x86
- ARM11
causa Purtroppo per la mancanza di crosscompiler, non è possibile creare tutte le versioni del manufatto in un colpo solo.
Usando altre parole, l'obiettivo è di avere qualcosa nel repository come questo
- artifact-1.0.0-linux.zip
- artifact-1.0.0-windows.zip
- artefatto -1.0.0-arm11.zip
- artifact-1.0.1-linux.zip
- artifact-1.0.1-windows.zip
- artifact-1.0.1-arm11.zip 012.351.641.061.
- ...
Si noti che le versioni sono sincronizzate. Come realizzare questo?
Il problema è che il processo di rilascio aggiorna la versione di pom.xml dopo ogni generazione. Quindi, con la costruzione di consecutivamente su diverse piattaforme posso realizzare avendo
- artifact-1.0.0-linux.zip
- artifact-1.0.1-windows.zip
- artifact-1.0.2-arm11.zip
- artifact-1.0.3-linux.zip
- artifact-1.0.4-windows.zip
- artifact-1.0.5-arm11.zip
- ...
ma questo non è quello che sto cercando.
potevo
eseguito su Linux
rilascio mvn: preparare rilascio: eseguire -DpushChanges = false
(con pushChanges impostata su false rilascio non aumenterà il numero di versione in SCM)
e quindi eseguito su Windows
rilascio mvn: preparare rilasciare: eseguire
(questo aumenterà il numero di versione)
Ma poi la responsabilità di innescare i processi di rilascio su diverse piattaforme nel giusto ordine è con me. C'è un modo in cui Maven può aiutarmi con questo?
Avete qualche suggerimento?
Grazie
PS. Si noti che questa non è una domanda su come organizzarsi in moduli. Si tratta di come sincronizzare i processi di rilascio di un singolo artefatto su più piattaforme.
Ma il mio punto è che quando si è su Linux, non è possibile creare un binario per Windows (a causa di alcuni vincoli di toolchain). Quindi il processo di compilazione eseguito su Linux, non può creare i binari di Windows. E viceversa. Quindi non è possibile creare tutti i file binari per tutte le piattaforme in una volta. --- Questa non è una domanda su come organizzare in moduli. Si tratta di sincronizzare i processi di rilascio di un singolo artefatto su più piattaforme. –
OK, quindi temo che Maven non possa aiutarti a farlo automaticamente come vuoi, a meno che tu non voglia (e abbia tempo) di creare un proprio plugin di rilascio. Come hai detto, puoi fare tutto di nuovo senza sbattere contro una versione e poi romperla globalmente alla fine, ma è qualcosa che devi ricordare. Puoi anche scartare il versioning comune (ereditato dal genitore) e digitare letteralmente le versioni in POM di tutti i moduli. Questa volta, tuttavia, è necessario controllare questo processo e assicurarsi che tutti i moduli vengano rilasciati con la versione e che ogni modulo venga rilasciato una sola volta. Non riesco davvero a vedere il modo automatico al 100%. –
Sono sempre in ritardo :) Comunque, grazie per l'aiuto. –