mam artefakt, który powinien być zbudowany na kilku platformach docelowych:Synchronizacja wersje artefaktów na różnych platformach z procesu uwalniania Maven
- Linux x86 x86
- Okna
- ARM11
Niestety z powodu do braku crosscompilers, nie jest możliwe stworzenie wszystkich wersji artefaktu za jednym razem.
Korzystanie Innymi słowy, celem jest, aby w repozytorium coś takiego
- artifact-1.0.0-linux.zip
- artifact-1.0.0-windows.zip
- artefaktu -1.0.0-arm11.zip
- artifact-1.0.1-linux.zip
- artifact-1.0.1-windows.zip
- artifact-1.0.1-arm11.zip
- ...
Należy pamiętać, że wersje są zsynchronizowane. Jak to osiągnąć?
Chodzi o to, że proces wydania aktualizuje wersję pom.xml po każdym kompilacji. Więc budując kolejno na różnych platformach mogę osiągnąć mając
- 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
- ...
ale to nie jest to, czego szukam.
mogę
uruchomić na Linuksie
wydaniu mvn: przygotować wydanie: wykonać -DpushChanges = false
(z pushChanges ustawiona na false wydaniu nie wzrośnie numer wersji w SCM)
, a następnie uruchom na Windows
uwolnienie mvn: przygotować zwolnić: wykonać
(zwiększy to numer wersji)
Ale wtedy odpowiedzialność wywołać procesy zwalniające na różnych platformach w odpowiedniej kolejności spoczywa na mnie. Czy istnieje sposób, w jaki maven może mi w tym pomóc?
Czy masz jakieś sugestie?
Dzięki
PS. Zauważ, że nie chodzi o to, jak organizować się w moduły. Chodzi o to, jak zsynchronizować procesy wydawania pojedynczego artefaktu na wielu platformach.
Ale moim celem jest to, że gdy jesteś na Linuksie, nie możesz utworzyć pliku binarnego dla okien (ze względu na pewne ograniczenia dla toolchain). Tak więc proces kompilacji uruchamiany w systemie Linux nie może tworzyć plików binarnych systemu Windows. I wzajemnie. Dzięki temu nie można utworzyć wszystkich plików binarnych dla wszystkich platform za jednym razem. --- To nie jest pytanie o organizowanie się w moduły. Chodzi o to, jak zsynchronizować procesy wydań pojedynczego artefaktu na wielu platformach. –
OK, więc obawiam się, że Maven nie może pomóc ci zrobić tego automatycznie, jak chcesz, chyba że chcesz (i masz trochę czasu) na stworzenie własnej wtyczki wydania. Jak już wspomniałeś, możesz zrobić całe zdjęcie bez uderzania w wersję, a potem na koniec globalnie, ale to jest coś, o czym musisz pamiętać. Możesz także odrzucić typową wersję (odziedziczoną po rodzicu) i wpisać wersje dosłowne we wszystkich POM modułów. Tym razem jednak musisz kontrolować ten proces i upewnić się, że wszystkie moduły są wydawane wraz z wersją, a każdy moduł jest wydany jeden raz. Naprawdę nie widzę w 100% automatycznego sposobu. –
Zawsze mam mało czasu :) W każdym razie, dzięki za pomoc. –