首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rpm-maven-plugin如何控制rpm存储在m2存储库中的名称?

rpm-maven-plugin如何控制rpm存储在m2存储库中的名称?
EN

Stack Overflow用户
提问于 2015-12-08 01:26:16
回答 1查看 3.9K关注 0票数 3

我们的组织有一个命名rpms的约定。通常,rpm将具有比Maven项目更短的基本名称。还有一个关于如何命名版本的约定。所以我们想要一个像${shortname}-${project.version}-${release}.noarch.rpm这样的名字。

我想使用rpm-maven-plugin构建这样的rpm,而不是使用旧的nmake技术。

使用插件的参数很容易做到这一点。在目标目录中生成的rpm具有所需的名称。

然而,当mvn install将这个rpm安装到maven存储库中时,它坚持以"maven的方式“存储它:${project.artifactId}-${project.version}.rpm

我希望使用最初在包中创建的名称将rpm存储在标准的maven存储库目录中。

我如何才能做到这一点呢?

更新:我尝试使用maven-install-plugin (install-file目标),但没有得到我想要的结果。但这在一定程度上是因为我没有正确调用它。它没有被调用。如果您定义了一个安装文件目标,那么它必须显式地绑定到安装阶段。这样做,也就是说,向配置添加<phase>install</phase>至少会调用我想要的安装的执行,但它仍然不允许我根据需要命名rpm。

EN

回答 1

Stack Overflow用户

发布于 2015-12-08 22:54:57

根据Karl Heinz Marbaise的说法,他是Apache Maven项目的提交者,what I am trying to do is impossible, and should not be attempted.

然而,我需要我需要的东西,并找到了一种折衷方案,可以满足我的大部分需求。我不得不牺牲的唯一一件事是假设存储库RPM必须与项目的其余部分位于相同的存储库目录中。这是一个很小的牺牲。完成此操作后,我可以将rpm存储在Maven存储库的一个目录中,该目录以短名称命名。

代码语言:javascript
复制
<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-install-plugin</artifactId>
        <version>2.5.2</version>
        <executions>
                <execution>
                        <id>install-rpm</id>
                        <goals>
                                <goal>install-file</goal>
                        </goals>
                        <phase>install</phase>
                        <configuration>
                                <file>${project.build.directory}/rpm/${rpm.name}/RPMS/noarch/${rpm.name}-${project.version}-${rpm.release}.noarch.rpm</file>
                                <groupId>${project.groupId}.rpms</groupId>
                                <artifactId>${rpm.name}</artifactId>
                                <version>${project.version}-${rpm.release}</version>
                                <classifier>noarch</classifier>
                                <packaging>rpm</packaging>
                        </configuration>
                </execution>
        </executions>
</plugin>

使用${project.groupId}.rpms的groupId,而不仅仅是${project.groupId},允许以这种方式构建的所有rpms位于存储库的主分支之外,这在我们的情况下很有用。

使用${project.version}-${rpm.release}的一个版本,而不仅仅是${project.version},可以将发行版合并到名称中。

noarch分类器也会将这一点添加到名称中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34139544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档