【问题标题】:How to get the parent pom properties in java?如何在java中获取父pom属性?
【发布时间】:2020-06-29 10:31:38
【问题描述】:

我在父 pom 中有一个属性

<properties>
    <firefoxVersion>68</firefoxVersion>
    <chromeVersion>71</chromeVersion>
</properties>

我需要从 java 中的子项目访问它,例如 getProperty("firefoxVersion") 但它返回 null。我使用了 MavenXPP3 Reader,并且能够读取子 pom.xml 中声明的属性。

model.getProperties().getProperty("firefoxVersion")

【问题讨论】:

  • 可以将父pom作为文件读取并解析得到标签的值。
  • 您是否将其用于故障安全/surefire 插件中的 selenium 等集成测试?
  • @khmarbaise-i 只需检查用户机器的firefoxversion是否与父项目中的属性firefoxversion相同。此检查将在子项目中进行。

标签: java maven pom.xml parent-pom


【解决方案1】:

如果你想使用maven模型,你可以使用它的路径加载pom文件并获取属性。

如下所示:

BufferedReader in = new BufferedReader(new FileReader("Path_To_Your_Parent_pom.xml"));
MavenXpp3Reader reader = new MavenXpp3Reader();
Model model = reader.read(in);
String property = model.getProperties().getProperty("Property_Name_Here");

【讨论】:

  • 父 pom 充当依赖项(即)父项目将在工件中而不是在本地路径中。
  • @kaviarasan 你能详细解释一下你的场景吗?
  • @Rahul-我将我的属性 firefoxVersion 保留在远程工件中的父 pom 中。当我尝试使用模型访问属性时,我只从子 pom 中获取属性,而不是在父 pom 中.
  • 我可以检索父 pom 的 artifactId、Version 等,但不能检索属性。
猜你喜欢
  • 2014-03-02
  • 2018-08-09
  • 1970-01-01
  • 2013-03-02
  • 2023-03-29
  • 1970-01-01
  • 2018-08-07
  • 2012-12-22
  • 2012-03-31
相关资源
最近更新 更多