【问题标题】:How to access the values set in profiles (in pom.xml) via java code如何通过 java 代码访问配置文件(在 pom.xml 中)中设置的值
【发布时间】:2016-04-09 11:05:59
【问题描述】:

我有一个 Maven 项目,在 pom.xml 中设置了具有不同值的不同配置文件。但我不知道如何通过 java 代码访问配置文件中设置的那些值。 例如-

我的 pom.xml:

<profile>
        <id>scaler</id>
        <properties>
            <user>xxxxxxx</user>
            <secret>yyyyyyyy</secret>
            <proxyHost>172.19.17.13</proxyHost>
            <proxyPort>9444</proxyPort>
            <environment>SCALER</environment>
        </properties>
    </profile>

Java 代码-

String serviceurl = "http://"<proxyhost>":<proxyPort>/";

在上面的 java 代码中,我想使用 pom.xml 中定义的代理主机作为 172.19.17.13 和端口作为 9444,但是如何从 pom 访问这些值? 我会感谢你的帮助

【问题讨论】:

  • Maven 属性用于编译时变量,而不是真正用于运行时变量。我相信,在您的情况下,使用属性文件会是一个更好的解决方案。
  • 你的 pom 在源代码管理中吗?您想要源代码管理中的凭据(用户/密码)吗?

标签: java xml maven


【解决方案1】:

您应该使用 maven 过滤功能。

http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html

只需在 src/main/resources 中添加一个带有一些占位符的属性文件:

key=${myvalue}

那么myvalue 应该被定义为你的 pom.xml 中的一个属性

请务必在您的资源上激活过滤器:

<resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
</resource>

【讨论】:

【解决方案2】:

我不确定这取决于 Maven 配置文件。您可以尝试使用properties-maven-plugin(或其他解决方案),如here 所述。只是将您的属性写入文件,然后在 java 代码中使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    • 2018-08-20
    • 2011-05-01
    • 1970-01-01
    相关资源
    最近更新 更多