首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从pom.xml获取属性值?

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

Stack Overflow用户
提问于 2014-10-16 20:23:18
回答 4查看 18.1K关注 0票数 9

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

代码语言:javascript
运行
复制
<properties>
        <getdownload-webapp.version>1.5</getdownload-webapp.version>
</properties>

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

代码语言:javascript
运行
复制
String version = System.getProperty("getdownload-webapp.version"); // output version = null

这段代码在运行时显示为null (

ps:此项目中没有settings.xml

EN

回答 4

Stack Overflow用户

发布于 2018-09-23 19:17:44

所以你有一个像这样的属性。

代码语言:javascript
运行
复制
<properties>
    <getdownload-webapp.version>1.5</getdownload-webapp.version>
</properties>

在Maven项目中创建一个文件,如下所示。

代码语言:javascript
运行
复制
  src/main/resources/project.properties

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

代码语言:javascript
运行
复制
  src/test/resources/project.properties

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

代码语言:javascript
运行
复制
  version=${getdownload-webapp.version}

请注意,您还可以向文件中添加类似这样的标志。

代码语言:javascript
运行
复制
  debug=false

如果还没有,您必须为您的项目启用Maven过滤。该功能将在项目文件中查找要替换为pom中的值的占位符。要继续操作,您需要在pom.xml文件的<build>标记内添加这些行。下面是src/main的使用方法:

代码语言:javascript
运行
复制
<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
    ...

下面是src/test的使用方法:

代码语言:javascript
运行
复制
<build>
    <testResources>
        <testResource>
            <directory>src/test/resources</directory>
            <filtering>true</filtering>
        </testResource>
    </testResources>
    ...

最后,在源代码(MyClassName.java)中添加一个代码块,如下所示

代码语言:javascript
运行
复制
  Properties props = new Properties();
  props.load(MyClassName.class.getClassLoader().getResourceAsStream("project.properties"));
  String version = props.getProperty("version");

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

票数 5
EN

Stack Overflow用户

发布于 2014-10-16 20:25:42

我假设你想把它放到代码中去检查一些东西,对吧?您可以使用maven中的过滤,它将在源代码中注入值,类似于过滤选项http://mojo.codehaus.org/templating-maven-plugin/

票数 0
EN

Stack Overflow用户

发布于 2018-09-23 21:45:57

Maven Resource Plugin提供的机制主要负责将Maven属性传递给Java应用程序

该插件是Maven Super Pom的一部分,在Jar Default生命周期的process-resources阶段执行。您需要做的唯一一件事就是访问active filtering

这将用您的pom中的相应属性替换任何占位符,例如src/main/resources中的任何文件中的${my.property}

如何使该属性对Java应用程序可用取决于您-从类路径中读取它就可以了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26404343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档