/ / Wtyczki Maven; użycie wyjścia jednego jako wejścia dla innego - java, maven

Wtyczki Mavena; używanie wyjścia jednego jako wejścia dla drugiego - java, maven

Mój problem polega na tym, że napisałem wtyczkę mavenwdrożyć artefakt do lokalizacji określonej przez użytkownika. Próbuję teraz napisać kolejną wtyczkę maven, aby użyć tego wdrożonego artefaktu, zmienić niektóre rzeczy i ponownie rozpakować. Chcę napisać drugą wtyczkę, tak aby użyć pierwszej wtyczki, aby uzyskać informacje o tym, gdzie została wdrożona. Nie wiem, jak uzyskać dostęp do tych informacji z pierwszej wtyczki.

Odpowiedzi:

1 dla odpowiedzi № 1

Zgodziłbym się z @Barend, że jeśli możesz sobie pozwolić na wprowadzenie zmian przed wdrożeniem, to może być najlepsza strategia.

Jeśli nie możesz tego zrobić, możesz podążać za strategiąwtyczka taka jak wtyczka Maven Release. Wtyczka wydania Maven działa w dwóch fazach, w których drugi bieg wymaga wyjścia z pierwszego uruchomienia. Zarządzają nim, przechowując tymczasowy plik właściwości w katalogu projektu, który zawiera informacje takie jak nazwa tagu, nazwa wersji SNAPSHOT itp.

Możesz użyć tego samego podejścia z wtyczką. Pamiętaj tylko, że wtyczka będzie w pewnym sensie transakcyjna, w której oczekuje, że inny cel zostanie uruchomiony, zanim będzie mógł wykonać swoją pracę.


0 dla odpowiedzi nr 2

Wydaje mi się, że najprostszym rozwiązaniem jest odwrócenie kolejności uruchamiania wtyczek.

Najpierw uruchom wtyczkę B, używając znanej lokalizacji pod target/ zmodyfikować artefakt, a następnie uruchomić wtyczkę A, wdrażając zmodyfikowany artefakt do skonfigurowanej lokalizacji.

Jeśli to nie jest żadna opcja, proponuję po prostu zduplikować wartość konfiguracji (aby obie wtyczki zostały poinformowane o nowej lokalizacji w swoich <configuration> element). Dzięki temu obie wtyczki są niezależne, co zakłada Maven.

Ostatnią opcją jest sprawienie, by wtyczka B analizowała cały POM i wyodrębniała informacje z wtyczek A <configuration> element, ale naprawdę nie mogę tego polecić. Jeśli pójdziesz w ten sposób, dwie wtyczki są tak ściśle powiązane, że są naprawdę tylko jedną wtyczką. To kiepska konstrukcja, narusza zasadę najmniejszego zaskoczenia i może spowodować nieprzyjemne problemy z konfiguracją.