【发布时间】:2020-07-14 14:46:15
【问题描述】:
我正在尝试通过单元测试设置环境变量,当我在本地机器上运行我的代码时它工作正常。
但是当我在 Jenkins 管道上部署它时,它开始抛出异常。
例外:-
java.lang.NoSuchFieldException: theCaseInsensitiveEnvironment
代码 sn-p :-
Class<?> processEnvironmentClass = Class.forName("java.lang.ProcessEnvironment");
Field theEnvironmentField = processEnvironmentClass.getDeclaredField("theEnvironment");
theEnvironmentField.setAccessible(true);
Map<String, String> env = (Map<String, String>) theEnvironmentField.get(null);
env.clear();
env.putAll(newenv);
Field theCaseInsensitiveEnvironmentField = processEnvironmentClass.getDeclaredField("theCaseInsensitiveEnvironment");
theCaseInsensitiveEnvironmentField.setAccessible(true);
Map<String, String> cienv = (Map<String, String>) theCaseInsensitiveEnvironmentField.get(null);
cienv.clear();
cienv.putAll(newenv);
【问题讨论】:
-
你试过这个解决方案了吗stackoverflow.com/a/7201825/8035260
标签: java unit-testing jenkins reflection environment-variables