【问题标题】:What does properties tag mean in pom.xml maven?pom.xml maven中的properties标签是什么意思?
【发布时间】:2021-04-18 02:51:44
【问题描述】:

我在 Spring Boot 中工作,我在 pom.xml 文件中看到了 properties 标记,但我不明白这是什么意思,我们可以在其中做什么标记。

properties 标记,例如

   <properties>
        <java.version>1.8</java.version>
   </properties>

属性标签是什么意思?

我还可以在 properties 标签中添加什么?

【问题讨论】:

  • 这个&lt;java.version&gt;1.8&lt;/java.version&gt; 来自哪里?见System.getProperties():“除非另有说明,否则更改标准系统属性可能会产生不可预知的结果。

标签: spring-boot maven pom.xml


【解决方案1】:

属性标签是什么意思?

来自官方 Maven 文档:

属性是理解 POM 基础知识的最后一个必要部分。 Maven 属性是值占位符,类似于 Ant 中的属性。通过使用符号 ${X},可以在 POM 中的任何位置访问它们的值,其中 X 是属性。或者它们可以被插件用作默认值,例如:

在您的情况下,您已将属性定义为 java 的版本。

现在这个属性(java.version)可以在maven pom文件中重复使用。

来自官方 Maven 文档:

它们有五种不同的风格:

  • env.X:以“env”作为变量的前缀。将返回 shell 的环境变量。例如,${env.PATH} 包含 PATH 环境变量。注意:虽然环境变量本身是 Windows 上不区分大小写,属性查找区分大小写。 换句话说,虽然 Windows shell 返回相同的值 %PATH% 和 %Path%,Maven 区分 ${env.PATH} 和 ${env.Path}。环境变量的名称被标准化为所有 为了可靠性,大写。

  • project.x:POM 中点 (.) 表示的路径将包含相应元素的值。例如: 1.0 可通过以下方式访问 ${project.version}。

  • settings.x:settings.xml 中以点 (.) 表示的路径将包含相应元素的值。例如: false 可通过以下方式访问 ${settings.offline}。

  • Java 系统属性:所有可通过 java.lang.System.getProperties() 访问的属性都可作为 POM 属性使用, 比如 ${java.home}。

  • x:在 POM 中的元素内设置。 value 的值可以用作 ${someVar}。

我还可以在属性标签中添加什么?

您可以在 maven pom 文件中添加以后需要重用的所有变量。

例如POM sn-p 下面重用了jackson.version 4次。

<properties>
    <jackson.version>2.10.2</jackson.version>
    <dropwizard.version>2.0.1</dropwizard.version>
    <websocket.version>1.4.0</websocket.version>
    <apachehttp.version>4.5.10</apachehttp.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>${apachehttp.version}</version>
    </dependency>
    <dependency>
        <groupId>org.java-websocket</groupId>
        <artifactId>Java-WebSocket</artifactId>
        <version>${websocket.version}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-yaml</artifactId>
        <version>${jackson.version}</version>
    </dependency>
 <dependencies>

参考资料:

Maven Pom Properties

【讨论】:

    猜你喜欢
    • 2021-09-10
    • 2017-05-07
    • 2016-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-09
    • 2014-01-08
    相关资源
    最近更新 更多