我在 spring boot 中工作,我在 pom.xml 文件中看到了 properties 标签,但我不明白它是什么意思,我们可以在这个标签中做什么。
properties 标签例如
<properties>
<java.version>1.8</java.version>
</properties>
属性标签是什么意思?
我还可以在 properties 标签中添加什么?
属性标签是什么意思?
来自 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>
参考资料: