运行胖 JAR 时包含运行时 JAR

时间:2021-06-15 13:58:55

标签: java jar classpath fatjar wiremock-standalone

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

我正在尝试使用 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 添加到类路径,但不忽略原始依赖项。我怎样才能做到这一点?

0 个答案:

没有答案
相关问题