pom.xml 中的属性是如何设置的?

how is the properties set in this pom.xml?

这是我项目中 pom.xml 的片段。

<properties>
        <Port>2020</Port>   
        <threads>20</threads>
        <test.suite />
        <test.suite.path />
        <useTag />
        <useTestCase />
        <args>-Dthreads=${threads} -Dtest.suite.path=${test.suite.path} -Dappenv=${test.app.env} -Dtest.suite=${test.suite} -DuseTag=${useTag} -DuseTestCase=${useTestCase}</args>
    </properties>

maven构建时,我想知道变量test.suitetest.suite.pathuseTestCase是如何设置的?我在 pom 的任何地方都没有看到它。但是 Jenkins 构建工作正常,它已经替换了这些占位符的值。

使用这种属性设置有什么用。 <variable/> 而不是 <variable>...</variable> ?

为了准确说明这些属性在您的案例中是如何设置的,我们需要查看整个 pom 结构,包括 parent pom(s) 以及您的 Jenkins 作业配置。

不过,我知道有两种方法可以设置这些属性:

  1. 通过您的 parent 个人资料

  2. 调用maven时通过系统属性

我的猜测是,您的 parent 之一中有一个配置文件可以设置这些属性。像这样:

<profile>
      <id>jenkins</id>
      <properties>
           <test.suite>...</test.suite>
           ...
      </properties>
</profile>

并且此配置文件已在您的 Jenkins 服务器上激活。查看 here 了解如何激活配置文件的信息。

另一种选择是,当从 Jenkins 调用 maven 时,这些属性被指定为系统属性。

至于为什么用 <variable/> 而不是 <variable></variable> 是个人喜好问题。 <variable/> 与 XML 中的 <variable></variable> 意思相同。