我在pom.xml中定义了这些属性 -
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<powermock.version>1.6.2</powermock.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<spring.artifact.version>4.1.7.RELEASE</spring.artifact.version>
<logback.version>1.1.6</logback.version>
</properties>
我试图了解这些属性名称的定义 - powermock.version,logback.version?我怎么知道ch.qos.logback.core库的版本是由logback.version属性决定的?我查了很多这方面的信息,发现有许多众所周知的属性,比如maven.compiler.source和maven.compiler.target,但没有解释版本的属性。
答案 0 :(得分:1)
Maven Properties
是 值占位符,与Ant中的属性一样。他们的价值观可以获得 使用符号$ {X}在POM中的任何位置,其中X是 属性。
您当前的使用情况是上述链接中提到的第5种风格
x:在POM中的元素内设置。的价值 值可以用作 $ {someVar}。
当您想要将同一个变量用于可能或可能不属于同一groupId的多个工件时,它的有效性就会发挥作用。
例如 -
<properties>
<spring.version>3.1.2.RELEASE</spring.version>
</properties>
您可以使用与 -
相同的属性进一步定义依赖关系<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version> <!-- version would be fetched from properties-->
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version> <!-- version would be fetched from properties-->
</dependency>
类似于
<version>3.1.2</version>
确保两个工件也在同一版本上。
答案 1 :(得分:0)
根据@nullpointer的回答,我做了一些挖掘,这就是我找到的。我想将此作为评论,但我发现很难在评论中对此进行格式化。我希望可以将此作为答案发布。我在SO上发帖比较新...所以请告诉我这是否应该以不同方式进行。我会接受@nullpointer的回答,即使这也是一个答案。
我的超级&#39; pom包括这个 -
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
</parent>
spring-boot-starter-parent pom包含这个 -
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.4.1.RELEASE</version>
<relativePath>../../spring-boot-dependencies</relativePath>
</parent>
spring-boot-dependencies pom包含 -
<properties>
...
<logback.version>1.1.7</logback.version>
...
</properties>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-access</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${logback.version}</version>
</dependency>