1

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

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

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

WebHook extensions ( 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

我从这个问题中得到的是,如果-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 添加到类路径,但没有忽略原始依赖项。我怎样才能做到这一点?

4

0 回答 0