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

主项目与Maven依赖库中RestAssured.port静态值作用规则咨询

结论

RestAssured.port 是类级别的静态字段,主项目中原本设置的1111会被库项目的赋值操作直接覆盖为2222,两个项目不会各自持有独立的端口值。

核心原因
  • Maven的模块拆分、依赖引入只是编译期的代码组织方式,项目运行时主项目和所有引入的依赖类都会被加载到同一个JVM进程中。
  • Java中静态字段归属于类本身,而非某个类实例、某个Maven模块。全限定名为io.restassured.RestAssured的类在同一个JVM中只会被加载一次,对应的port静态字段在内存中全局只有唯一一份存储,不管是主项目还是库项目的代码修改这个值,操作的都是同一个内存地址,后执行的赋值会覆盖之前的设置。
避坑建议

直接修改RestAssured全局静态字段的写法,在多模块、多测试场景下非常容易出现配置串扰:比如库项目逻辑执行完把端口改成2222后,主项目后续发起的请求会被错误路由到2222端口,引发非预期的报错。
如果需要给不同服务端设置独立端口,不要修改全局静态配置,改用实例级别的配置方式即可:

  • 为不同服务构造独立的RequestSpecification请求实例,单独给实例绑定端口,示例代码:
// 主项目专属请求实例,绑定端口1111
RequestSpecification mainServiceRequest = RestAssured.given().port(1111);
// 库项目专属请求实例,绑定端口2222
RequestSpecification libServiceRequest = RestAssured.given().port(2222);
  • 后续发请求时统一使用对应专属的请求实例,就不会出现配置互相覆盖的问题。

内容的提问来源于stack exchange,提问作者Dariusz Gwóźdź

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 04:06:51