Maven:如何在POM文件中引用开发人员的电子邮件?

raf*_*end 1 pom.xml maven

众所周知,如果我在POM文件中有这样的属性:

<project ...>
    ...
    <groupId>com.bosch</groupId>
    <artifactId>jenkins-ci</artifactId>
    <version>0.0.1</version>
    <packaging>pom</packaging>
    ...
    <organization>
        <name>Organization Name</name>
    </organization>
    ...
</project>
Run Code Online (Sandbox Code Playgroud)

......我可以用它来引用它们${project.artifactId},${project.organization.name}等等.

但是,我如何在下面的标签中引用开发人员的ID或电子邮件?

<project ...>
    ...
    <developers>
        <developer>
            <id>dev1</id>
            <name>Developer 1</name>
            <email>developer1@email.com</email>
        </developer>
        <developer>
            <id>dev2</id>
            <name>Developer 2</name>
            <email>developer2@email.com</email>
        </developer>
    </developers>
    ...
</project>
Run Code Online (Sandbox Code Playgroud)

编辑:@PaBäckström的回答似乎是正确的,但对我而言,只有在我使用时才有效help:evaluate.

以下面的例子为例:

<project
    ...
    <properties>
        <testId>${project.developers[0].id}</testId>
    </properties>
    ...
    <developers>
        <developer>
            <id>dev1</id>
            <name>Developer 1</name>
            <email>developer1@email.com</email>
        </developer>
        <developer>
            <id>dev2</id>
            <name>Developer 2</name>
            <email>developer2@email.com</email>
        </developer>
    </developers>
    ...
    <organization>
        <name>${project.developers[0].id}</name>
    </organization>
    ...
</project>
Run Code Online (Sandbox Code Playgroud)

然后以下工作......

C:\workspaces\rafael_workspace\jenkins-parent-pom>mvn help:evaluate
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Jenkins POM 0.0.1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-help-plugin:2.1.1:evaluate (default-cli) @ jenkins-ci ---
[INFO] No artifact parameter specified, using 'com.test:jenkins-ci:pom:0.0.1' as project.
[INFO] Enter the Maven expression i.e. ${project.groupId} or 0 to exit?:
${project.developers[0].id}
[INFO]
dev1
[INFO] Enter the Maven expression i.e. ${project.groupId} or 0 to exit?:
${testId}
[INFO]
dev1
[INFO] Enter the Maven expression i.e. ${project.groupId} or 0 to exit?:
${project.organization.name}
[INFO]
dev1
Run Code Online (Sandbox Code Playgroud)

但是,当我C:\workspaces\rafael_workspace\jenkins-parent-pom>mvn help:effective-pom用来解析有效的POM时,这些引用不变.有效的POM仍然显示我${project.developers[0].id}而不是实际值dev1.

P-a*_*röm 5

您可能需要升级Maven,但这应该有效:

${project.developers[0].id}
Run Code Online (Sandbox Code Playgroud)