Maven 2 maven程序集忽略依赖工件的finalName

Maven 2 maven程序集忽略依赖工件的finalName,maven-2,maven-assembly-plugin,Maven 2,Maven Assembly Plugin,我有一个分层maven项目,我正试图从中为几个子模块构建一个本机安装程序。我使用我的产品名称作为前缀:xyz-${artifactId}在父POM中,这样我的所有工件jar都有一个标准的命名约定 xyz-parent +-- util +--- target/xyz-util.jar +-- core +--- target/xyz-core.jar +-- app1 <--- "builds an installer as part of the packa

我有一个分层maven项目,我正试图从中为几个子模块构建一个本机安装程序。我使用我的产品名称作为前缀:
xyz-${artifactId}
在父POM中,这样我的所有工件jar都有一个标准的命名约定

xyz-parent
 +-- util
      +--- target/xyz-util.jar
 +-- core
      +--- target/xyz-core.jar
 +-- app1 <--- "builds an installer as part of the package phase"
      +--- target/xyz-app1.jar
 +-- app2 <--- "builds an installer as part of the package phase"
      ...
当我运行
mvn clean package
时,我会得到一个包含所有依赖jar的
target/xyz-app1-bin/xyz-app1/lib
目录,但是我的兄弟项目生成的jar没有一个具有正确的最终名称(例如,我有
util-0.0.1-SNAPSHOT.jar
而不是
xyz-util.jar


这个问题似乎与类似,但我不知道什么是“attach”(可能已弃用)。

我无法直接使用finalName,但是,我确实使用依赖项集重新实现了我想要的finalName逻辑,从而将依赖项分为外部和内部集合(基于groupId):


箱子
迪尔
外部的
${artifact.artifactId}.${artifact.extension}
com.xyz:*
解放党
xyz-${artifact.artifactId}.${artifact.extension}
com.xyz:*

您应该能够直接使用finalName(这对我很有用):


${artifact.build.finalName}.${artifact.extension}
Source: "target\pkg\lib\*.jar"; DestDir: "{app}\external";  Flags: ignoreversion;
<assembly>  
  <id>bin</id>  
  <formats>
    <format>dir</format>
  </formats>
  <dependencySets>
    <dependencySet>
      <outputDirectory>external</outputDirectory>
      <outputFileNameMapping>
        ${artifact.artifactId}.${artifact.extension}
      </outputFileNameMapping>
      <excludes>
        <exclude>com.xyz:*</exclude>
      </excludes>
    </dependencySet>

    <dependencySet>
      <outputDirectory>lib</outputDirectory>
      <outputFileNameMapping>
        xyz-${artifact.artifactId}.${artifact.extension}
      </outputFileNameMapping>
      <includes>
        <include>com.xyz:*</include>
      </includes>
    </dependencySet>

  </dependencySets>
</assembly>
<outputFileNameMapping>
    ${artifact.build.finalName}.${artifact.extension}
</outputFileNameMapping>