在 bash 脚本 (Linux) 中从 Maven POM 读取属性

Arc*_*ora 4 linux bash maven

我使用 maven 作为我的构建工具。下面是我的 POM 中的一个片段。

    <properties>
        <geb.version>2.2</geb.version>
        <selenium.version>3.14.0</selenium.version>
        <groovy.version>2.4.14</groovy.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spock.version>1.1-groovy-2.4</spock.version>
        <surefire.plugin.version>2.20</surefire.plugin.version>
        <surefire.plugin.parallel>methods</surefire.plugin.parallel>
        <selenium.host>XXXXX</selenium.host>
    </properties>
Run Code Online (Sandbox Code Playgroud)

我正在编写一个 linux 可执行文件,我想访问<selenium.host>我的 bash 脚本中的属性。我该怎么做呢?

DEFAULT_ADDRESS=$(get address from POM here)
Run Code Online (Sandbox Code Playgroud)

请注意,我的脚本和 POM 文件在同一目录中。

干杯!

khm*_*ise 5

最好和可靠的解决方案是像这样使用maven-help-plugin

ADDRESS=$(mvn help:evaluate -Dexpression=selenium.host -q -DforceStdout)
Run Code Online (Sandbox Code Playgroud)

如果你没有在你的 pom 文件中指定 maven-help-plugin 的版本,你应该使用以下内容:

ADDRESS=$(mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=selenium.host -q -DforceStdout)
Run Code Online (Sandbox Code Playgroud)

结果是从 pom 文件中读取给定的属性,然后将值分配给 ADDRESS