You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java项目中无法运行WireMock服务,编译报错求助

问题原因及解决步骤

1. 依赖作用域限制

你的WireMock依赖设置了<scope>test</scope>,这个作用域下的依赖仅在测试代码目录(src/test/java)中可用。如果你的testWiremock.java放在src/main/java目录下,编译时自然找不到相关类。

解决方法二选一:

  • 移除<scope>test</scope>,让依赖在主代码中也能被引用:
    <dependency>
         <groupId>com.github.tomakehurst</groupId>
         <artifactId>wiremock-jre8</artifactId>
         <version>2.35.0</version>
         <!-- 去掉test作用域限制 -->
    </dependency>
    
  • 或者把testWiremock.java移动到src/test/java目录下,保持依赖的test作用域不变。

2. 缺失必要的导入语句

代码中直接使用WireMockServer和options(),但没有导入对应的包,编译器无法识别这些类和方法。需要在类顶部添加导入:

import com.github.tomakehurst.wiremock.WireMockServer;
import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.options;

3. 代码中的拼写错误

你的代码里有两处变量名拼写错误:

  • 初始化时是wiremockServer(全小写m),启动时写成了wireMockServer(大写M)
  • 停止服务器时写成了wreMockServer(多了个r)

修正后的完整代码:

import com.github.tomakehurst.wiremock.WireMockServer;
import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.options;

public class testWiremock{
     public static void main(String[] args){
          WireMockServer wireMockServer = new WireMockServer(options().port(8080));
          wireMockServer.start();
          System.out.println("Server running successfully!");
          wireMockServer.stop();
     }
}

4. 编译运行验证

修改完成后,执行mvn compile编译代码,然后可以用mvn exec:java -Dexec.mainClass="testWiremock"来运行主类(如果类有包名,要加上完整包路径,比如com.mycode.testWiremock)。

内容的提问来源于stack exchange,提问作者PPGoodMan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 11:10:37