java - 如何从 pom.xml 获取属性值?

标签 java maven

我在我的 pom.xml 中添加了一个节点:

<properties>
        <getdownload-webapp.version>1.5</getdownload-webapp.version>
</properties>

我如何在代码中获得这个 1.5 的值?

String version = System.getProperty("getdownload-webapp.version"); // output version = null

这段代码在运行时给了我空值(

ps:本项目中没有settings.xml

最佳答案

所以你有这样的属性(property)。

<properties>
    <getdownload-webapp.version>1.5</getdownload-webapp.version>
</properties>

在您的 Maven 项目中创建如下文件。

  src/main/resources/project.properties

如果仅用于测试,则如下所示。

  src/test/resources/project.properties

在新文件中添加这一行。请注意,您不应使用“properties”作为前缀(例如,不要写“properties.getdownload-webapp.version”)。

  version=${getdownload-webapp.version}

请注意,您也可以将这样的标志添加到文件中。

  debug=false

如果尚未完成,您必须为您的项目启用 Maven 过滤。该功能将在项目文件中查找占位符,以将其替换为 pom.xml 中的值。为了继续,您需要在 <build> 中添加这些行pom.xml 文件的标签。这是如何处理 src/main:

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

下面是如何为 src/test 做的:

<build>
    <testResources>
        <testResource>
            <directory>src/test/resources</directory>
            <filtering>true</filtering>
        </testResource>
    </testResources>
    ...

最后,在您的源代码 ( MyClassName.java ) 中,添加一个 block ,例如

  Properties props = new Properties();
  props.load(MyClassName.class.getClassLoader().getResourceAsStream("project.properties"));
  String version = props.getProperty("version");

您可以向 project.properties 添加任意数量的变量文件并使用此方法加载每个文件。

关于java - 如何从 pom.xml 获取属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26404343/

相关文章:

java - 尝试将 <br>、<BR>、<br +attribute> 标签替换为 <br/>

java - xtext的轻量级使用

java - 在 Maven 中下载 Artifact 时显示详细日志

maven - 无法启动插件 : Unable to resolve 167. 0 : missing requirement [167. 0] osgi.wiring.package; (osgi.wiring.package=com.atlassian.inject)

java - 为什么现有的 Maven 存储库丢失了?

java - 如何使用 IntelliJ IDEA 执行 mvn 命令?

eclipse - wro4j & m2e Eclipse 未编译 LESS

java - 检查 Web 元素值的 boolean 方法

Java 7 随机类

c# - 除以零 : int vs. float