运行胖 JAR 时包含运行时 JAR

问题描述

很确定这是一个重复的问题,但找不到我正在寻找的答案。

我正在尝试使用 WebHook 扩展独立运行 wiremock。两者都打包为 JAR 文件。第一个wiremock-jre8-standalone-2.28.1.jar一个可运行的胖罐子,当我输入时它就像一个魅力:

java -jar wiremock-jre8-standalone-2.28.1.jar

WebHook 扩展 (wiremock-webhooks-extension-1.0.0.jar) 是一个普通的 JAR,包含一个org.wiremock.webhooks.Webhooks。我正在尝试以这种方式运行 wiremock

java -cp wiremock-webhooks-extension-1.0.0.jar                 \
     -jar wiremock-jre8-standalone-2.28.1.jar --extensions org.wiremock.webhooks.Webhooks

我收到以下错误

Exception in thread "main" java.lang.classNotFoundException: org.wiremock.webhooks.Webhooks

我从 this question 得到的是,如果在命令行中指定了 -jar,则忽略 -cp 而使用 MANIFEST。所以我试过了

java -cp wiremock-webhooks-extension-1.0.0.jar:wiremock-jre8-standalone-2.28.1.jar  \
    com.github.tomakehurst.wiremock.standalone.wiremockServerRunner                 \
    --extensions org.wiremock.webhooks.Webhooks

但得到:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/client/HttpClient

当然,HttpClient 是 wiremock 依赖项的一部分。 wiremock 独立 JAR 清单如下:

Manifest-Version: 1.0
Main-Class: com.github.tomakehurst.wiremock.standalone.wiremockServerR
 unner

我想运行胖 JAR,将外部 JAR 添加到类路径,但不忽略原始依赖项。我怎样才能做到这一点?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)