Aeonbits.OWNER在Maven中不起作用吗?故障排除

时间:2019-07-15 14:34:00

标签: java maven owner

由于某些原因,当我运行 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'),那么一切都很好。

Full pom.xml

如果我通过IDEA运行程序(TestNG配置)运行项目,那么一切都会100%正常。我不知道为什么mvn builder不想在某个时候执行ConfigFactory.create()并且找不到运行 maven + owner 的任何人。

其他信息: 如果我在上面运行config方法,但将 -Durl = {url} 指定为arg,则与其从Environment.class url的属性中获取url一样,它是在-Durl中。因此smh方法有效,但由于某种原因无法到达Environment.class ...

1 个答案:

答案 0 :(得分:0)

好的,我已经定位了问题。

由于某些原因,mvn无法读取如下所示的属性文件:

@Config.Sources({"classpath:${property}.properties"})

因此,您必须将其更改为:

@Config.Sources({"file:src/main/resources/${property}.properties"})