gpt4 book ai didi

java - 不同依赖项上的类冲突

转载 作者:行者123 更新时间:2023-12-02 08:59:32 25 4
gpt4 key购买 nike

我的项目的 2 个依赖项上有相同的类。库unit-api-1.0(它是org.geotools的依赖项)和jscience-4.3.1都具有类javax.measure.quantity.Length

 [INFO] +- org.geotools:gt-shapefile:jar:22.3:compile
[INFO] | +- org.geotools:gt-main:jar:22.3:compile
[INFO] | | +- org.geotools:gt-referencing:jar:22.3:compile
[INFO] | | | +- org.ejml:ejml-ddense:jar:0.34:compile
[INFO] | | | | \- org.ejml:ejml-core:jar:0.34:compile
[INFO] | | | +- commons-pool:commons-pool:jar:1.5.4:compile
[INFO] | | | +- org.geotools:gt-metadata:jar:22.3:compile
[INFO] | | | | \- org.geotools:gt-opengis:jar:22.3:compile
[INFO] | | | | \- systems.uom:systems-common-java8:jar:0.7.2:compile
[INFO] | | | | +- tec.uom:uom-se:jar:1.0.8:compile
[INFO] | | | | | +- javax.measure:unit-api:jar:1.0:compile


[INFO] \- org.jscience:jscience:jar:4.3.1:compile
[INFO] \- org.javolution:javolution:jar:5.2.3:compile

当我尝试使用 Length 参数化 Measure 时,我收到错误:

[ERROR]   error: type argument Length is not within bounds of type-variable Q
[ERROR] where Q is a type-variable:
[ERROR] Q extends Quantity declared in class Measure

基本上,两个接口(interface) Length 都扩展了接口(interface) Quantity,如下所示:

https://www.javadoc.io/static/javax.measure/unit-api/1.0/javax/measure/quantity/Length.html http://jscience.org/api/javax/measure/quantity/Length.html

但是其中一个扩展了 Quantity,而另一个扩展了 Quantity。不知何故,它们彼此不兼容,编译器使用了错误的编译器并给了我这个错误。

有办法以某种方式管理这种情况吗?

最佳答案

GeoTools upgrade FAQ涵盖了 20.0 版本之后使用 Units 所需的更改。

您需要以下依赖项:

<dependency>
<groupId>systems.uom</groupId>
<artifactId>systems-common-java8</artifactId>
<version>0.7.2</version>
</dependency>

并进行这些更改:

Package names have changed, resulting in some common search and replaces when upgrading:

  • Search javax.measure.unit.Unit replace javax.measure.Unit

  • Search ConversionException replace IncommensurableException

This is a checked exception, in areas of the GeoTools library where this was found we now return an IllegalArgument exception.

  • Search converter == UnitConverter.IDENTITY replace converter.isIdentity()

  • Search javax.measure.unit.NonSI replace import si.uom.NonSI

  • Search javax.measure.unit.SI replace import si.uom.SI

  • Search SI.METER replace SI.METRE

  • Search javax.measure.converter.UnitConverter replace javax.measure.UnitConverter

  • Search javax.measure.unit.UnitFormat replace import javax.measure.format.UnitFormat

  • Search Unit.ONE replace AbstractUnit.ONE

  • Search Dimensionless.UNIT replace AbstractUnit.ONE

  • Search Unit.valueOf(unitString) replace Units.parseUnit(unitString)

关于java - 不同依赖项上的类冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60264592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com