pom.xml maven 中的属性标签是什么意思?

问题描述 投票:0回答:1

我在 spring boot 中工作,我在 pom.xml 文件中看到了 properties 标签,但我不明白它是什么意思,我们可以在这个标签中做什么。

properties 标签例如

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

属性标签是什么意思?

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

maven pom.xml
1个回答
14
投票

属性标签是什么意思?

来自 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}和 ${环境路径}。环境变量的名称被规范化为所有 为了可靠性大写。

  • 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 片段重用了 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 属性

© www.soinside.com 2019 - 2024. All rights reserved.