Ostatnio pracowałem nad pewnymi ulepszeniami w projekcie opracowanym jakiś czas temu i to właśnie znalazłem. Wiele zależności w plikach pom przechodzi bez określonych wersji, a mimo to są one rozwiązywane. Projekt składa się z 1 modułu głównego i 2 submodułów. Używany jest wzorzec agregatora, co oznacza, że w ogóle nie ma sekcji zależności. Górny projekt po prostu agreguje 2 moduły i to wszystko, co robi. Podprojekty nie odnoszą się do niego jako do rodzica. Mają innego rodzica. Nie mogę pojąć, że ani same podprojekty, ani ich rodzice (tak naprawdę nie ma również Zarządzania zależnością) określają wersje dla niektórych zależności. Na przykład:Zależność maven bez wersji
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>imap</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
Czy ktoś może mi pomóc to rozgryźć? Wygląda na to, że maven obsługuje wersjonowanie z pewną domyślną strategią.
czy można wyświetlić wyjście 'mvn -version' tylko dla pewności? –
Praca maven nie jest możliwa bez zdefiniowania wersji artefaktów. Powinny one zostać zdefiniowane gdzieś w znaczniku 'dependencyManagement' w module częściowym lub macierzystym. Sprawdź swoją hierarchię pom. Użyj pomocy mvn: effective-pom – Ozgen
Sprawdziłeś za pomocą 'mvn help: effective-pom -Doutput = result.xml' i sprawdzisz, czy nie ma zależności Management. – khmarbaise