如何防止maven程序集插件重命名工件
在我的maven项目中,我需要(相当多的)RPM。为了便于部署,我想将所有RPM组装到一个归档(.tar.gz)中。该组件在独立的模块中运行,该模块取决于所有RPM模块 为此,我有以下如何防止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<
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
请注意,插件将始终基于该模式重命名文件。没有跳过重命名的选项