Podbicie wersji jednej z bibliotek w maven

0

Mam w projekcie taką zależność w maven:

  		<dependency>
  			<groupId>org.springframework.cloud</groupId>
  			<artifactId>spring-cloud-starter-gateway</artifactId>
  		</dependency>

Środowisko CI/CD jednak odmawia mi zbudowania paczki z uwagi na zależność transytywną netty-codec-http:4.1.50 w związku tym podbiłem tą bibliotekę do wersji 4.1.96.Final w taki sposób:

		<dependency>
			<groupId>io.netty</groupId>
			<artifactId>netty-codec-http</artifactId>
			<version>4.1.96.Final</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-gateway</artifactId>
			<exclusions>
				<exclusion>
					<groupId>io.netty</groupId>
					<artifactId>netty-codec-http</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

Jednak to nie działa. W drzewie zależności widzę:

[INFO] +- io.netty:netty-codec-http:jar:4.1.96.Final:compile
[INFO] |  +- io.netty:netty-common:jar:4.1.50.Final:compile
[INFO] |  +- io.netty:netty-buffer:jar:4.1.50.Final:compile
[INFO] |  +- io.netty:netty-transport:jar:4.1.50.Final:compile
[INFO] |  |  \- io.netty:netty-resolver:jar:4.1.50.Final:compile
[INFO] |  +- io.netty:netty-codec:jar:4.1.50.Final:compile
[INFO] |  \- io.netty:netty-handler:jar:4.1.50.Final:compile

czyli jakby sama biblioteka została podbita a transytywne od niej już nie.. dlaczego tak się dzieje?

1
lukascode napisał(a):

Środowisko CI/CD jednak odmawia mi zbudowania paczki z uwagi na zależność transytywną netty-codec-http:4.1.50

Co znaczy odmawia? Co dokładnie mu się nie podoba?

Exclude na tranzytywnych bibliotekach IMO ma sens jedynie w przypadku jakichś vulnerabilities, w przeciwnym wypadku łatwo o brak kompatybilności (nie od razu, ale np po kilku miesiącach użytkowania).

0

@Pinek: Dokładnie, powodem odmowy są podatności

7

@lukascode: zamiast pojedynczej biblioteki netty-codec-http zaimportuj bom
https://mvnrepository.com/artifact/io.netty/netty-bom/4.1.58.Final

Jak używać bom w mavenie https://www.baeldung.com/spring-maven-bom

1

Btw wystarczy że zaimportujesz bom, nie musisz podbijać w konkretnych zależnościach tej przechodniej zaleznosci

0

@opiszon: Dzięki faktycznie teraz wersje są takie jakie chce czyli 4.1.96.Final. Dlaczego ten mój sposób z exclusion nie działa?

0

Robisz exclusion tylko jednej konkretnej zależności przejściowej z jednej zależności bezpośredniej. Wszystkie inne zależności z innych zależności ;-) dalej korzystają z konkretnej wersji.

Zaimportowanie bom nadpisuje wszystkie biblioteki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1