我有一个项目,包含同一个jar的两个版本(它们实现类似的类和其他特定的类)。一个jar用于一个文件夹中的java源文件,另一个用于其他文件夹。
问题在于它会导致jar冲突(不同的类实现),因为似乎两个文件夹都使用了依赖项列表中找到的第一个jar,例如:
Jar_file ... 1.0.0
Jar_file ... 2.0.0
然后,我的问题是如何将这些特定依赖项关联到同一项目中的每个文件夹?
干杯。
答案 0 :(得分:5)
您应该将两个“文件夹”重构为两个不同的maven模块。现在每个人都可以声明它所需的库版本。然后使用maven-shade-plugin将库着色为两个模块的结果JAR文件。另外,使用maven-shade-plugin的class relocation功能将库的类重定位到新包。为库的两个版本选择不同的包名称。您最终会将两个版本的库分成两个不同的包,并将其隐藏在生成的JAR文件中。