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

cur*_*ity 9 java maven

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

<properties>
        <getdownload-webapp.version>1.5</getdownload-webapp.version>
</properties>
Run Code Online (Sandbox Code Playgroud)

我怎么能在代码中得到这个 1.5 值?

String version = System.getProperty("getdownload-webapp.version"); // output version = null
Run Code Online (Sandbox Code Playgroud)

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

ps:这个项目中没有settings.xml

aww*_*smm 5

所以你有这样的财产。

<properties>
    <getdownload-webapp.version>1.5</getdownload-webapp.version>
</properties>
Run Code Online (Sandbox Code Playgroud)

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

  src/main/resources/project.properties
Run Code Online (Sandbox Code Playgroud)

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

  src/test/resources/project.properties
Run Code Online (Sandbox Code Playgroud)

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

  version=${getdownload-webapp.version}
Run Code Online (Sandbox Code Playgroud)

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

  debug=false
Run Code Online (Sandbox Code Playgroud)

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

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
    ...
Run Code Online (Sandbox Code Playgroud)

这是 src/test 的方法:

<build>
    <testResources>
        <testResource>
            <directory>src/test/resources</directory>
            <filtering>true</filtering>
        </testResource>
    </testResources>
    ...
Run Code Online (Sandbox Code Playgroud)

最后,在您的源代码 ( MyClassName.java) 中,添加一个类似

  Properties props = new Properties();
  props.load(MyClassName.class.getClassLoader().getResourceAsStream("project.properties"));
  String version = props.getProperty("version");
Run Code Online (Sandbox Code Playgroud)

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


Nad*_*dir 0

我假设您想将其放入代码中以检查某些内容,对吧?您可以使用 Maven 中的过滤来将值注入到源代码中,类似于过滤选项 http://mojo.codehaus.org/templatating-maven-plugin/