Podczas kompilowania za pomocą maven na maszynie wielordzeniowej / wieloprocesorowej często byłoby możliwe równoległe tworzenie różnych podprojektów. Czy jest sposób, aby to zrobić z maven? Czy jest wtyczka do tego / czegokolwiek?
maven-2
build-process
build-automation
Hans-Peter Störr
źródło
źródło
Sugerowane rozwiązania są świetne, ale chciałem dodać coś do odpowiedzi tutaj dotyczących stabilności testu podczas równoległych kompilacji .
Tak więc, gdy używana jest kompilacja równoległa Mavena :
Niektóre problemy z testów może się pojawić. Zwróć uwagę na wszelkie zachowania w testach, które różnią się między wykonywaniem testów szeregowych i równoległych. W większości przypadków zdarza się, że izolacja testu jest niewłaściwa pod względem zasobów .
Na przykład test1 manipuluje wpisem db za pomocą klucza 12345, który jest zakodowany na stałe, a test2 używa tego samego wpisu! To nie może być dobre ...
Jest to sytuacja, którą należy w pierwszej kolejności rozważyć, ale czasami o niej zapomina się i może prowadzić do różnych problemów po przejściu na równoległą kompilację maven.
W przypadku, gdy tak się stanie, a nadal chcesz użyć wykonywania równoległego przynajmniej w niektórych przypadkach, możesz (oczywiście oprócz próby naprawienia testu i uczynienia go odpowiednio izolowanym), aby wyłączyć przebiegi testowe Mavena za pomocą argumentu -DskipTests:
źródło
Niektóre aplikacje do tworzenia CI (np. Hudson) mogą budować wiele projektów Maven w tym samym czasie (a nawet na wielu komputerach).
Wsparcie dla tego w `` samodzielnym '' maven również byłoby fajne, szybkie przejrzenie narzędzia do śledzenia problemów Mavena dało mi: http://jira.codehaus.org/browse/MNG-3004
źródło
Jeśli przyszedłeś do tego pytania, chcąc uporządkować serwer kompilacji, a nie używasz takiego, który natywnie radzi sobie z mavenem, magiczna flaga, której szukasz, jest taka:
zrób to dla każdej swojej kompilacji, a możesz pozwolić im działać jednocześnie, zamiast mieć wszystko, co używa mavena w kolejce!
źródło