如何使用正确的rpm名称将生成的Maven RPM工件安装到本地m2存储库中?

use*_*022 5 rpm maven

因此,我可以按预期使用maven RPM插件成功生成RPM工件。

我在pom.xml(打包为pom)中使用了Attached-rpm目标,以便RPM插件将工件安装到本地m2存储库中(因为它已绑定到打包阶段)。

问题:RPM生成的名称很好,如下所示:code-module-1.0.3-SNAPSHOT20120727095507.amd64.rpm

但是,当maven将其安装到我的本地仓库中时,我最终得到:

代码模块-rpm-1.0.3-SNAPSHOT-rpm.rpm

我丢失了全名,即RPM的体系结构部分,相反,Maven在.rpm扩展名(我尚未定义的分类器)之前将rpm附加到名称的末尾,并使用了pom工件ID作为rpm名称。 rpm名称本身。

我尝试使用build-helper插件指向目标目录中生成的RPM,但这不能工作,因为rpm名称是动态生成的,并且build-helper插件仅接受完整的文件名,不包含通配符等。

我不想更改工件的最终名称,因为这将打破Maven约定。

这是Maven的输出:

[INFO] Installing /home/xzcx/Development/repository/svn/source/parent-project    
/code-module-rpm/target/rpm/code-module/RPMS/amd64/code-module-1.0.3-
SNAPSHOT20120727145507.amd64.rpm to  
/home/xzcx/.m2/repository/com/xpackage/ypackage/codepackage/code-module-rpm/1.0.3-
SNAPSHOT/code-module-rpm-1.0.3-SNAPSHOT-rpm.rpm
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

更新:我注意到RPM插件网站指出,使用attach :: RPM目标将允许您构建具有不同架构等的多个RPM,但是根据上述情况,唯一可行的方法是使用分类器作为RPM名称的arch位不会保留到本地存储库中的安装中。

小智 -1

我遇到了同样的问题,但我主要想要的是从 code-module-rpm-1.0.3-SNAPSHOT-rpm.rpm 中删除 -rpm,因为我觉得它是多余的。我应该被命名为:code-module-rpm-1.0.3-SNAPSHOT.rpm(至少)