如何防止maven程序集插件重命名工件

如何防止maven程序集插件重命名工件,maven,maven-assembly-plugin,rpm-maven-plugin,Maven,Maven Assembly Plugin,Rpm Maven Plugin,在我的maven项目中,我需要(相当多的)RPM。为了便于部署,我想将所有RPM组装到一个归档(.tar.gz)中。该组件在独立的模块中运行,该模块取决于所有RPM模块 为此,我有以下assembly.xml: <?xml version="1.0"?> <assembly> <id>myproject-rpm-package</id> <formats> <format>tar.gz<

在我的maven项目中,我需要(相当多的)RPM。为了便于部署,我想将所有RPM组装到一个归档(.tar.gz)中。该组件在独立的模块中运行,该模块取决于所有RPM模块

为此,我有以下
assembly.xml

<?xml version="1.0"?>
<assembly>
    <id>myproject-rpm-package</id>
    <formats>
        <format>tar.gz</format>
    </formats>
    <baseDirectory>${project.parent.parent.name}-${project.version}-rpms</baseDirectory>

    <dependencySets>
        <dependencySet>
            <useProjectArtifact>false</useProjectArtifact>
            <includes>
                <!-- Include only the RPMs -->
                <include>*:rpm</include>
            </includes>
            <outputDirectory>/</outputDirectory>
        </dependencySet>
    </dependencySets>
</assembly>

. 


我的假设正确吗?如果是这样的话,我如何防止汇编插件重命名我的RPM文件

你的假设是正确的。
maven程序集插件
将程序集项目的所有依赖项重命名为以下指定的格式:

设置此程序集中包含的所有依赖项的映射模式。 默认值为:
${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}

文档包含可以在此属性中指定的内容:

outputFileNameMapping参数中可以使用哪些属性。 您可以使用:

  • 您的构建中可用的所有系统或maven属性,语法为
    ${myProperty}
  • 具有
    ${env.XXX}
    的所有环境变量,其中
    XXX
    是环境变量
  • 特殊的
    ${dashClassifier?}
    属性(见上文)
  • 所有工件属性(来自类)如下:
    • ${artifact.groupId}
      :工件组ID
    • ${artifact.artifactId}
      :工件artifactId
    • ${artifact.version}
      :工件分类器
    • ${artifact.baseVersion}
      :工件的基本版本(对于快照,它将始终是-SNAPSHOT,而不是它的时间戳,即使您自己没有构建它)
    • ${artifact.classifier}
      :工件分类器
    • ${artifact.scope}
      :工件范围
在将其用于项目模块工件时,可以使用
${module.XXXXX}

文档中似乎缺少它,但从版本2.2开始,您还可以使用
${artifact.properties.*}
属性,如JIRA中所述。这将引用您在
元素内的此工件中设置的自定义属性

例如,您可以:

<outputFileNameMapping>${artifact.artifactId}-${artifact.version}.noarch.rpm</outputFileNameMapping>
${artifact.artifactId}-${artifact.version}.noarch.rpm
请注意,插件将始终基于该模式重命名文件。没有跳过重命名的选项