调用外部jar时Maven依赖项中的问题



我正面临Maven打包的问题,我的项目是

  1. Maven项目名为(A),有两个线程,其中一个将运行Spring启动应用程序,一个将运行普通java项目
  2. Maven项目用普通java代码调用(B)将有Pojo和Models类用于所有项目
  3. Maven项目调用(C)与正常java代码
  4. Maven Project Called (E) with Normal java code

总结它们的使用

  1. (A),(C),(E)将使用(B)中的模型/Pojo类,(B)被添加为其POM中的依赖项
  2. (A)将使用来自(C)的方法,(C)被添加为(A) POM
  3. 中的依赖项
  4. (C)将使用Classloader从(E)加载类,并使用
  5. 方法

这里的问题是:

当(C)项目加载(E)中的类并尝试使用(B)中的参数类的方法时{RestConnection beans}抛出

Exception in thread "Thread-9" java.lang.NoClassDefFoundError: B/beans/RestConnections
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.getDeclaredMethods(Class.java:1975)
at com.eska.module.execution.model.bo.ExecutionBo.openANDLoadAllJarsDest(ExecutionBo.java:468)
at com.eska.module.execution.model.bo.ExecutionBo.getDestModelJarData(ExecutionBo.java:372)
at com.eska.module.execution.model.service.impl.ExecutionServiceImpl.start(ExecutionServiceImpl.java:45)
at com.eska.module.execution.MainExecution.MainExecution.main(MainExecution.java:94)
at com.eska.med.provman.module.generation.model.bo.StartupThreadingPhases$InterruptableTask.run(StartupThreadingPhases.java:97)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: B/beans/RestConnections
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 9 more

注意:如果我从eclipse中运行该项目,它可以正常工作,但是当我尝试使用Maven jar时,这个问题发生了

我试图从eclipse中导出Runnable jar(项目添加在构建路径中),这个问题没有发生,但spring引导无法工作。

有谁能帮忙吗?

我的猜测是(B)不在类路径上,当您运行您的项目。在CLI中,您需要添加-cp <path to (B) jar>

最新更新