【问题标题】:Pom tag <finalName> is not working correctlyPom 标记 <finalName> 无法正常工作
【发布时间】:2018-12-21 11:29:36
【问题描述】:

我的项目有 pom.xml,它建立了 ear。我在 pom.xml 中添加了 finalName 标签,例如test-ear-${parent.version}-${region}。我正在使用以下命令 -> mvn clean install -Dregion=QA。在我的本地工作区中,ear 的正确名称为 test-ear-3.5.23.0-QA.ear。但是,当它安装在存储库中时,它的构建类似于 test-3.5.23.0.ear。意味着它在本地存储库中安装时忽略了 finalName。

我的理解是,maven 忽略标签并使用 ArtifactName + Version 来构建工件的名称。此外,我无法覆盖工件 test-ear 的版本,因为我想我正在使用父标签中的相对路径。这是我的示例 pom.xml:-

<parent>
    <groupId>com.proj</groupId>
    <artifactId>test-parent</artifactId>
     <relativePath>../test-parent/pom.xml</relativePath>
    <version>${pom.version}</version>
</parent>

<groupId>com.proj.child</groupId>
<artifactId>test-ear</artifactId>
<packaging>ear</packaging>

<build>
    <finalName>test-ear-${parent.version}-${region}</finalName>
    <plugins>
        <plugin>
    .................

如果我提供工件版本和测试耳工件的所有依赖项的版本,它对我有用。有人可以指导一下,我的 pom 出了什么问题。

【问题讨论】:

  • &lt;finalName&gt;..&lt;/finalName&gt; 标签仅用于更改target 目录中的名称。您无法更改存储库的命名约定。存储库中的命名规则是artifactId-VERSION.XXX ...此外,&lt;version&gt;${pom.version}&lt;/version&gt; 的使用将在构建期间导致警告,如果您使用它执行installdeploy,这将导致无法使用的 poms。
  • 我无法使用版本标签 test-ear-${parent.version}-${region} 覆盖版本,因为我在父 pom 中使用相对路径标签。如果我在所有依赖项中提到版本,它对我有用。但不要认为这是理想的解决方案。

标签: java maven pom.xml


【解决方案1】:

属性标签在哪里?您必须将字段放在此标签中,然后使用 ${fieldname} 获取它。

【讨论】:

  • 1.15.0 我的父 pom 中有类似于上面的属性标签。我在多个子 pom 中继承此版本以获取该版本。在工件“test-ear”中,我希望它附加在命令中提到的 -Dregion。
猜你喜欢
  • 2017-03-13
  • 1970-01-01
  • 1970-01-01
  • 2022-07-08
  • 2019-05-18
  • 1970-01-01
  • 2015-07-26
  • 2016-10-05
  • 1970-01-01
相关资源
最近更新 更多