我正在将一个java项目转换为使用模块。我的一个模块依赖于hamcrest库,它同时需要jar文件hamcrest.core和hamcrest.library。这两个jar文件都有org.hamcrest包。因此,当我的模块想将这两个jars视为自动模块时,它会失败,因为模块路径中的两个模块不能有同名的包。我搜索了很多,并在堆叠溢出上找到了一些相关的东西。如果我不想重建这些依赖关系,我似乎有两个合理的选择:
以下是我的问题:
提前感谢
发布于 2018-11-15 23:27:10
好的,我终于像这样解决了这个问题:
hamcrest-all的新maven模块,并添加对hamcrest-core和hamcrest-library的依赖关系。maven-assembly-plugin添加到此模块,并将appendAssemblyId设置为false。hamcrest-core和hamcrest-library的依赖项,然后将依赖项添加到hamcrest-all中。hamcrest-core的依赖时,排除hamcrest-all和hamcrest-all。它实际上所做的是在为hamcrest-core创建的jar文件中解压缩hamcrest-library和hamrest-all。由于JMPS将每个jar文件作为一个模块处理,所以问题就消失了:)
https://stackoverflow.com/questions/53245628
复制相似问题