我寫一個庫,具有以下依存關係:從另一個依賴指定的依賴性明確Maven的
```
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-servlets</artifactId>
<version>[3.1.0,)</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>[3.1.0,)</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>9.3.2</version>
<scope>provided</scope>
</dependency>
```
現在的問題是 - 一些用戶這個庫的使用也與dropwizard-core
一起使用,在這種情況下,我的庫爲dropwizard框架提供了一些額外的功能,因此dropwizard-core
是一個可選的依賴項。
問題是 - 當用戶進口dropwizard-core
- 它會自動將包括我上面指定(如metrics-core
),並在這種情況下,其他依賴 - 經由dropwizard-core
導入的版本可以與顯式指定的版本衝突。我該如何解決這個問題?
該庫的用戶將使用它 - 沒有dropwizard-core
,因此我不希望這些用戶導入dropwizard-core
(以及因此原子依賴性)。
誰導入的用戶(我假設你的意思是使用的依賴關係)可以覆蓋你的決定。此外,我建議你永遠不要使用版本範圍....如果你有可選的依賴關係,而不是將它們定義爲可選... – khmarbaise
這是好的,我已經刪除了版本範圍,並制定了特定的版本。但依賴關係仍然是怪異的總體。 –