当前位置: 首页 > 知识库问答 >
问题:

maven-两个模块可以使用同一个库的不同版本吗

朱乐逸
2023-03-14

我有一个包含两个maven模块(moduleA和moduleB)的java项目,其中每个模块都希望访问同一库的不同版本(v1和v2)。moduleA使用moduleB作为依赖项。我创建moduleB主要是为了解决这个问题,同时也认为它将保持代码的良好组织。

我在moduleA的pom.xml中使用了maven shade插件,认为它将帮助我区分每个版本的类,但我仍然得到“NoSuchMethodError ”,即使该方法在v2版本的库中可用。任何帮助都将不胜感激。

共有1个答案

苏骏
2023-03-14

我不认为这可以工作:如果你试图一次将同一库的两个不同版本加载到Java中,就会有命名空间冲突。

 类似资料:
  • 我正在使用maven 3.1.1,我有以下问题 我有一个主项目(pom.xml),它将被编译为WAR文件。它有两个模块。 模块1有以下内容(请注意工件的版本) 模块2有以下内容(请注意工件的版本) 因此,我的项目依赖于同一个库的两个版本。问题是库版本2与版本1不向后兼容。所以,我不能只包括版本2。 我正在考虑修改模块1以使用库版本2,但这需要大量时间。因此,我正在寻找一种方法来包含库的两个版本。

  • 问题内容: 我有一个独立使用两个依赖项的项目:BoneCP和Hibernate。但是由于SLF4J及其版本冲突,它无法正常工作,因为BoneCP需要SLF4J 1.5,而Hibernate需要SLF4j 1.6。如您所知,在pom.xml中不可能同时具有相同依赖项的两个不同版本。所以,我该怎么办才能解决这种惊人的SLF4J副作用??? 我得到的错误是臭名昭著的: 我需要添加它,但是不允许具有两个不

  • 我想在eclipse下处理同一个多模块maven项目的两个不同版本。 不幸的是,当您在eclipse下导入多模块maven项目时,您可以自己更改父模块项目名称以防止冲突,但不能更改子模块项目名称。子模块作为根项目导入,以模块名称命名。显然在导入过程中无法重命名它们。 在理想情况下,我希望保持pom不变。显然,我希望保持相同的eclipse工作区。。。

  • 问题内容: 我有一个项目,其中有两个使用sqlline的单独模块和另一个依赖jline的库(例如OtherLib)。但是在不同版本上。 Module1使用Sqlline取决于 jline 2.10 Module2使用OtherLib取决于 jline 0.9.94 并且这两个版本不兼容。因此,我设置了类路径,以便Module1首先在 $ HOME / lib / module1 文件夹中搜索,而M

  • 有什么方法可以使用两个不同的配置文件在settings.xml文件执行两个不同的构建在不同的服务器上?例如:在我的settings.xml文件中,我有两个配置文件: 现在,我想要一个项目的“test1”配置文件和另一个项目的“test2”,我希望我的pom.xml构建属性从settings.xml配置文件的属性中获取。 如果我将两个概要文件都保存在“activeProfiles”中,那么我的两个项

  • 我的应用程序在两个jboss版本jboss 4和jboss 7之间扩展。Jboss 4 intance正在通过eclipse运行。当我尝试通过[Jboss_HOME]/bin/standalone.bat运行Jboss 7时,它不会启动,并显示以下错误。 调用"C:\jboss as-7.1.1。最终\bin\standalone.conf.bat"警告JBOSS_HOME可能指向不同的安装-可能