【问题标题】:How to include external jar dependency to maven project?如何将外部 jar 依赖项包含到 Maven 项目中?
【发布时间】:2018-12-19 06:58:25
【问题描述】:

在将我的应用程序作为 Java 应用程序运行时,项目构建路径中包含的 jar 被发现并运行而没有任何错误。当我尝试通过执行java -jar myApp.jar 来运行应用程序时,找不到来自外部 jar 的使用的类。

线程“main”中的异常 org.springframework.beans.factory.CannotLoadBeanClassException:找不到类路径资源 [appContext.xml] 中定义的名称为“blackboard”的 bean 的类 [com.escomled.blackboard.impl.BlackboardImpl] ;

【问题讨论】:

  • 使用 Maven Shade 插件。
  • 这样的? <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.4.3</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <artifactSet> <includes> <include>escomled:escomled-common:jar:0.0.1</include> </includes> </artifactSet> </configuration> </execution> </executions> </plugin>
  • 请使用更新版本的maven-shade-plugin

标签: java spring maven jar


【解决方案1】:

您可能需要将外部 jar 添加到您的类路径中,如果它没有被任何 maven 插件组合。

java -cp <path to external jar> -jar myApp.jar

【讨论】:

  • java -cp C:\Users\venci.mihalov\Desktop\Escomled Projects\escomled_ common\target\escomled-common-0.0.1.jar -jar escomled-machine-learning-0.0.1-SNAPSHOT-jar-with-dependencies.jar 错误:无法找到或加载主类 Projects\escomled_common\target\escomled-common-0.0.1.jar
  • 如果路径中有空格,则需要用双引号将其括起来或转义空格。
  • 还是同样的错误 找不到类路径资源 [config/appContext.xml] 中定义的名称为“blackboard”的 bean 的类 [com.escomled.blackboard.impl.BlackboardImpl];嵌套异常是 java.lang.ClassNotFoundException: com.escomled.blackboard.impl.BlackboardImpl
  • 你确定 jar 包含那个类吗?
  • 是的,当我打开jar时,类文件在目录com/escomled/blackboard/impl
猜你喜欢
  • 2011-12-06
  • 1970-01-01
  • 2014-02-05
  • 2014-07-25
  • 2020-11-14
  • 2015-06-27
  • 1970-01-01
  • 1970-01-01
  • 2011-04-03
相关资源
最近更新 更多