由于某些原因,当我运行 mvn clean test -Denv = test -Dplatform = test 时,maven无法执行所有者的方法
private static Environment config = configFactory.create(Environment.class, System.getProperties());
private static String url = config.getUrl();
它只返回空值,而不是 .property 文件中的字段
我有几个 .property 文件,如下所示: prod.desktop.properties 并获得他们的领域:
@Config.Sources({"classpath:${env}.${platform}.properties"})
我认为Build is Success but Test does not run with Maven存在几乎相同的问题。 构建工作正常,程序运行到var应该返回属性的特定时刻。 如果我不是使用 env = config.getEnv(),而是使用 env = System.getProperty('env'),那么一切都很好。
如果我通过IDEA运行程序(TestNG配置)运行项目,那么一切都会100%正常。我不知道为什么mvn builder不想在某个时候执行ConfigFactory.create()并且找不到运行 maven + owner 的任何人。
其他信息: 如果我在上面运行config方法,但将 -Durl = {url} 指定为arg,则与其从Environment.class url的属性中获取url一样,它是在-Durl中。因此smh方法有效,但由于某种原因无法到达Environment.class ...
答案 0 :(得分:0)
好的,我已经定位了问题。
由于某些原因,mvn无法读取如下所示的属性文件:
@Config.Sources({"classpath:${property}.properties"})
因此,您必须将其更改为:
@Config.Sources({"file:src/main/resources/${property}.properties"})