Ostatnio zwróciłem uwagę na wtyczkę m2lease. Wydawało się być miłe. Mimo wszystko, wolałbym, aby mój proces uwalniania był całkowicie "wolny od pom-trekingu". Co mam na myśli to, że musimy zapewnić 4 parametr wejściowy na przetwarzanie kompletne wydanie: (. Ex 1.0.0)
- wersja release
- nowa wersja rozwojowa (ex 1.0.1-. Zdjęcie) znacznik
- zwolnieniu SCM (np. uwalnianie 1.0.0 lub 1.0.0)
- ścieżka bazie znaczników na SCM
pierwszy 2 mają akceptowalne wartości domyślne. Wersja podskakująca na punkcie wersji naprawiającej błędy jest dla mnie zupełnie niezła.
Numer 4 można określić w pom. To się nie zmieni.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<tagBase>https://example.com/svn/myProject/releases</tagBase>
</configuration>
</plugin>
To trzeci, który uniemożliwia mi pełną automatyzację wydania za naciśnięciem jednego przycisku. Tag etykieta domyślna uwolnienie nie zrobi to za nas więc trzeba określić go:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<tag>release-${pom.version}</tag>
<tagBase>https://example.com/svn/myProject/releases</tagBase>
</configuration>
</plugin>
Teraz, gdy to może być tylko to, co potrzebne, ja skończyć posiadające tag svn z -SNAPSHOT Pod koniec. :(Tak więc muszę przekazać parametr tagu w konfiguracji zadania Hudson, ponadto muszę go zmienić dla każdego wydanego wydania ... co nie jest dokładnie tym, czego potrzebuję.
Więc w końcu, mając Typ projektu Maven2 w Hudson + wtyczki m2release hudson + uwalnianie maven plugin poprawnie skonfigurowany jest Matką wszystkich procesie uwalniania widziałem do tej pory. Chociaż nie była idealna, uratowało mi to wiele pracy.
JS.
Niestety wydaje mi się, że ręczne wydania są rozwiązaniem technicznie możliwym do zaakceptowania, ale politycznie niedopuszczalnym. Wspomnę, że starszy człowiek w Sonatype _osobisty_ zasugerował, że robimy nasze wydania ręcznie. – sal
Alternatywą jest to, że robisz wydanie: przygotuj cel ręcznie lub przynajmniej wydanie: przygotuj -Ddryrun = true, dopóki nie jesteś wystarczająco pewny, że wszystkie kryteria są kompletne, to możesz rozpocząć proces budowania i być dość pewnym to zadziała. –
Bardzo podoba mi się ten pomysł. Uwolnienie: przygotowanie -Ddryrun = true wykonywane w pierwszej kolejności powinno zapobiec większości problemów, które możemy mieć. – sal