1. Overview
1.概述
Apache Maven is a powerful build automation tool used primarily for Java projects. Maven uses a Project Object Model or POM which contains information about the project and configuration details to build the project. Inside the POM, we are able to define properties that can be used in the POM itself or any child POM in a multi-module configured project.
Apache Maven是一个强大的构建自动化工具,主要用于Java项目。Maven使用项目对象模型(POM),其中包含有关项目的信息和配置细节,以构建该项目。在POM中,我们可以定义一些属性,这些属性可用于POM本身或多模块配置的项目中的任何子POM。
Maven properties allow us to define values in one place and use them in several different locations within our project definition.
Maven属性允许我们在一个地方定义值,并在项目定义中的几个不同位置使用它们。
In this short article, we’ll go through how to configure default values, and then how to use them.
在这篇短文中,我们将介绍如何配置默认值,以及如何使用它们。
2. Default Values in the POM
2.POM中的默认值
Most commonly, we define default values for Maven properties in the POM – to demonstrate this, we’ll create a property that holds a default value for a library dependency. Let’s start by defining the property and its default value in the POM:
最常见的是,我们在POM中为Maven属性定义默认值–为了证明这一点,我们将创建一个属性,为一个库的依赖关系保留一个默认值。让我们先在POM中定义该属性及其默认值。
<properties>
<junit.version>4.13</junit.version>
</properties>
In this example, we’ve created a property called junit.version and assigned a default value of 4.13.
在这个例子中,我们创建了一个名为junit.version的属性,并指定默认值为4.13。
3. Default Values in settings.xml
3.settings.xml中的默认值
We can also define Maven properties in a user’s settings.xml. This is useful if users need to set their own default values for a property. We define properties and their values in settings.xml in the same way we define them in the POM.
我们也可以在用户的settings.xml中定义Maven属性。如果用户需要为某个属性设置自己的默认值,这很有用。我们在settings.xml中定义属性及其值的方式与在POM中定义它们的方式相同。
We find settings.xml in the .m2 directory within a user’s home directory.
我们在用户的主目录下的.m2目录中找到settings.xml。
4. Default Values on the Command Line
4.命令行上的默认值
We can define default values for properties on the command line when executing a Maven command. In this example, we’re changing the default value of 4.13 to 4.12:
我们可以在执行Maven命令时在命令行上定义属性的默认值。在这个例子中,我们要把4.13的默认值改为4.12。
mvn install -Djunit.version=4.12
5. Using Properties in the POM
5.在POM中使用属性
We can reference our default property values elsewhere in the POM, so let’s go ahead and define the junit dependency and use our property to retrieve the version number:
我们可以在POM的其他地方引用我们的默认属性值,所以让我们继续定义junit依赖,并使用我们的属性来检索版本号。
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
</dependencies>
We’re referencing the value junit.version through the use of the ${junit.version} syntax.
我们通过使用${junit.version}来引用junit.version的值。语法。
6. Conclusion
6.结语
In this short article, we’ve seen how to define default values for Maven properties in three different ways, and as we can see, they are useful in allowing us to re-use the same value in various places whilst only needing to manage it in a single place.
在这篇短文中,我们看到了如何以三种不同的方式为Maven属性定义默认值,正如我们所看到的,它们非常有用,可以让我们在不同的地方重复使用同一个值,而只需要在一个地方管理它。
As always, the example code can be found over on GitHub.
一如既往,可以在GitHub上找到示例代码。