“mvn-d”传递的系统变量是否等于“java-d”?

dpiehjr4  于 2021-06-26  发布在  Java
关注(0)|答案(0)|浏览(142)

我正在和你一起做测试 mvn verify -Pprofile -Dparameter . 它是好的。现在我想让测试使用ipv6流量,所以我添加了 -Djava.net.preferIPv6Addresses=true 去指挥部。但是,我发现测试仍然使用ipv4。我打印出了系统变量值,事实上它已经被设置为true。
所以我试着去了解发生了什么。代码正在调用 InetAddress.getAllByName(host)) https://docs.oracle.com/javase/7/docs/api/java/net/inetaddress.html#getallbyname(java.lang.string)获取负载平衡器的ip地址。我发现不管我加 -Djava.net.preferIPv6Addresses=true 不管是否,ipv4地址总是列在ipv6地址之前。这就是问题所在,因为如果我手动反转返回列表中的顺序,即将ipv6地址列在ipv4地址之前,那么我的测试将使用ipv6通信量。
我怀疑这和maven生命周期有关。从https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/net/doc-files/net-properties.html#ipv4ipv6,系统变量 java.net.preferIPv6Addresses 在jvm启动时只读取一次。换句话说,如果maven在jvm启动时没有设置这个变量,那么这个变量将是无用的,这将导致我的问题。所以我的问题是,系统变量 mvn -Dparameter ,等于 java -Dparameter Main ? 关于如何调试这个有什么建议吗?
我是java新手,请纠正我的错误。谢谢!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题