- 环境: osx+java11+idea2022.2.5+maven+powermock+junit5
- 问题: 项目环境java11,运行环境java17:
powermock包使用Whitebox.invokeMethod测试调用私有/静态方法时:直接ide运行测试通过,但有警告提示, mvn clean test测试不通过并报错
- 解决办法: 运行环境也从java17改java11,同时修改pom.xml相关参数如下:(世界清净了: 测试ok,消除警告和报错)
- 其它:
java17提示不再支持–illegal-access=permit运行参数,类似绕过安全机制方法不灵,目前本机验证改java11没问题
另外github上有gradle相关方案参考,本质就是设置好这一串参数
BTW: 不同jdk 通过zshrc配置alias切换不成功,请尝试去掉PATH中JAVA_HOME/bin
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<argLine>
--illegal-access=permit
--illegal-access=debug
--add-opens java.xml/jdk.xml.internal=ALL-UNNAMED
--add-opens