我正在 spring boot 中工作,我在pom.xml文件中看到了属性标签,但我不明白它是什么意思以及我们可以在这个标签中做什么。
例如属性标签
<properties>
<java.version>1.8</java.version>
</properties>
Run Code Online (Sandbox Code Playgroud)
属性标签是什么意思?
我还可以在属性标签中添加什么?
SRJ*_*SRJ 19
属性标签是什么意思?
来自官方 Maven 文档:
属性是理解 POM 基础知识的最后一个必需部分。Maven 属性是值占位符,就像 Ant 中的属性一样。它们的值可以通过使用符号 ${X} 在 POM 中的任何位置访问,其中 X 是属性。或者它们可以被插件用作默认值,例如:
在您的情况下,您已将属性定义为 java 的版本。
现在这个property( 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 片段重用了 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>
Run Code Online (Sandbox Code Playgroud)
参考 :
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<flink.version>1.4.2</flink.version>
<java.version>11</java.version>
<scala.binary.version>2.11</scala.binary.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
</properties>
Run Code Online (Sandbox Code Playgroud)
在这里我使用了java.version内部属性部分本身。
| 归档时间: |
|
| 查看次数: |
29563 次 |
| 最近记录: |