我的项目中有4个模块。 Module1(即com.assign.print:printlog.value:3.0.0-SNAPSHOT)具有一个类,即Foo.java,在该类中,还有更多类正在使用com.print.assess:mns.pro:2.0
Module2,Module2和Module4使用的是com.print.assess:mns.pro:6.2。
在我的项目主pom.xml中,依赖项添加为:
<dependency>
<groupId>com.print.assess</groupId>
<artifactId>mns.pro</artifaxtId>
<version>6.2</version>
</dependency>
在Foo.java中,我有一个使用旧版本的DataVal.java类。 如果我不添加
<dependency>
<groupId>com.print.assess</groupId>
<artifactId>mns.pro</artifaxtId>
<version>2.0</version>
</dependency>
对于Module1 pom.xml,DataVal.java出现Redline错误,提示“无法解析符号”。因此,当我在2.0版中添加依赖项时,该错误已解决,但在安装项目时:
Failed while enforcing releasability the error(s) are [
Dependency convergence error for com.print.assess:mns.pro:6.2 paths to
dependency are:
+-com.assign.print:printlog.value:3.0.0-SNAPSHOT
+-com.app.print:print.sal:1.1.3
+-com.print.assess:mns.pro:6.2
and
+-com.assign.print:printlog.value:3.0.0-SNAPSHOT
+-com.print.assess:mns.pro:2.0
and
+-com.assign.print:printlog.value:3.0.0-SNAPSHOT
+-com.print.assess.over:multi-task.rev:3.1
+-com.print.assess:mns.pro:6.2
如何解决此问题?
预先感谢
答案 0 :(得分:0)
您可能希望将主pom中的6.2依赖项移至from dask import array as da
from dask.distributed import Client
# limit memory to 4 GB
client = Client(memory_limit=4e9)
# Create 80 GB random array with chunks=(M, 1)
arr = da.random.uniform(-1, 1, size=(1e5, 1e5), chunks=(1e5, 1))
# Compute mean (This works!)
arr.mean().compute()
# Rechunk to chunks=(1, N)
arr = arr.rechunk((1, 1e5))
# Compute mean (This hits memory limit!)
arr.mean().compute()
,因此默认情况下不会将其导入。然后,您可以像这样在模块poms中简单地导入6.2版本:
<dependencyManagement>
,在需要版本2的模块中,您可以这样导入它:
<dependency>
<groupId>com.print.assess</groupId>
<artifactId>mns.pro</artifaxtId>
</dependency>
有关依赖项管理的更多信息,可以在这里找到: https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
答案 1 :(得分:0)
如果您具有有效的dependencyConvergence强制实施器规则(您显然已经拥有),则需要在<dependencyManagement>
中确定您的版本(与标准<dependencies>
不同)。
然后,您可以在<dependencies>
中声明没有版本的依赖项。 dependencyManagement条目可以位于主pom中,也可以位于模块中。 @Bahmut给了您链接以了解dependencyManagement。