问题标签 [rpm-maven-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
maven - 使用 maven-rpm-plugin 如何替换类似于程序集插件的文件中的文本
我有一个 Maven 项目,我在其中创建了两个包装。一个是 tar.gz 文件(对于某些目标)和一个 RPM,用于可以使用 RPM 的 linux 目标。我将 maven-assembly-plugin 用于 tar.gz 文件。我使用 maven-rpm-plugin 进行 RPM 打包。
组装插件允许指定一个真正的选项,该选项将替换目标文件中的任何 Maven 属性。例如(来自我的 pom):
我的 .sh 文件中有一个部分声明了 java 命令行的 jar 文件:
当我使用上面定义的 maven 程序集插件时, ${project.artifactId}-${project.version} 会相应地进行翻译。
但是,当我为我的 RPM 构建使用相同的文件时,这些变量不会被替换。
有没有办法让 RPM 配置像 Assembly 配置一样工作?我找不到任何文档告诉我这是可能的。顺便说一句,我的 RPM 配置如下所示:
我想要的是在映射中实现真实并收工。有没有办法使用 maven-rpm-plugin 做到这一点?
我正在考虑使用 maven-replacer-plugin,但这并不像我想要的那样优雅。
有什么建议么?
java - 如何有条件地使用 Maven RPM 插件映射目录?
我已经编写了一个用于多个项目的主父 pom。
在这个 pom 中,我们设置了 RPM 插件来打包东西。我开始创建一个新标准,我们希望在每个 repo 中都存在一个新的顶级文件夹。
问题是,如果目录不存在,我必须创建一个 RPM,至少现在是这样。
我添加了一个这样的映射
当文件夹不存在时构建失败。
错误是
maven-3 - 使用 maven 构建过程在 Ambari 的 metainfo.xml 文件中动态创建版本号
我不想将我的服务版本硬编码到 metainfo.xml 中,我可以这样做吗?
我使用 maven 作为我的构建工具。
maven - 缺少环境变量时 rpm 安装失败
我正在使用 maven rpm 插件。我的 rpm 只是一种 zip,可以提取到不同的环境变量,例如 dev 、 prod 等
如果没有名为 install-env 的环境变量,我想使 rpm 安装失败
其次,我如何在 rpm 使用的安装脚本中读取和使用这个环境变量。
谢谢
eclipse - Eclipse 中生命周期映射的插件执行排除不适用于 rpm-maven-plugin
我正在尝试使用rpm-maven-plugin来构建 rpm。众所周知,此插件仅适用于具有 rpm 命令的操作系统(RedHat、CentOS)。它在 Windows 下不起作用(也许 Cygwin 除外,但这不是我的选择)。然而,我使用 Eclipse 在 Windows 上编码。没关系,我可以简单地将更改提交到远程 Atlassian Stash git 存储库并将其下载到 RedHat 服务器以构建 rpm。
但我仍然希望能够在 Eclipse 中构建应用程序,只是跳过构建的 RPM 部分。
我的 pom.xml 有
我想我可以避免更改我的 Eclipse 生命周期映射元数据的错误。(窗口 --> 首选项 --> Maven --> 生命周期映射),如本m2eclipse 文档中所述
所以我有以下生命周期映射元数据.xml(是的,我确实记得用新设置更新 Eclipse):
然而我的构建在 Eclipse 下失败了。生命周期映射中的插件排除未发生:
为什么这个机制不起作用?
一个可能的原因是 Eclipse没有给出这个插件的 m2e 文档中描述的错误,这是整个生命周期映射业务旨在解决的条件,也许这个生命周期映射业务适用于不同阶段手术。
那么我该如何配置我的项目,以便 rpm 插件的执行只发生在 rpm 可执行文件存在的系统上呢?
rpm-maven-plugin - rpm-maven-plugin 如何命名生成的 rpm 存档?
我已经翻遍了官方文档,但没有找到答案。似乎没有任何参数可以影响生成的 rpm 的名称。
我正在为此执行 rpm:rpm 目标:
它为我生成了一个名为
myapp-0.3.5.noarch.rpm-0.3.5-1.noarch.rpm
.
我希望myapp-0.3.5.noarch.rpm
或myapp-0.3.5-1.noarch.rpm
。为什么重复的版本号和“noarch.rpm”?我究竟做错了什么?
此外,通过上述配置,如果我们执行安装目标,则此 RPM 不会安装到本地 .m2 存储库中。作为练习,给定官方示例,我们应该期望生成的 rpm 具有什么名称?文档没有说。
或者也许我只是不明白插件作者在标记这种情况时所说的“ RPM as Side Effect ”是什么意思。
如果我将上面的执行更改为
如“RPM 作为次要工件”部分所述,你瞧,插件做了我所期望的,即它生成 myapp-0.3.5.noarch.rpm 并放入预期位置的 m2 存储库中。
我想这就是我问题的“答案”,但这仍然有点奇怪。根据描述,我对“辅助”选项将 rpm 放入 m2 存储库并不感到惊讶,但我不明白奇怪的命名。恕我直言,这些选项的命名和描述缺少一些东西。
dependencies - 使用 rpm-maven-plugin 构建的 RPM 上的 rpmlib(FileDigests) 依赖错误
就像这个问题一样,我尝试安装 RPM 并收到以下错误:
但是我的应用程序是使用rpm-maven-plugin构建的。
构建机器和我要进行安装的服务器之间的 redhat 版本存在差异。
如果我使用这个插件来构建 rpm,我该如何解决这个问题?
maven-3 - rpm-maven-plugin 如何控制 rpm 在 m2 存储库中存储的名称?
我们的组织有一个命名 rpm 的约定。通常,rpm 的基本名称比 Maven 项目短。还有一个关于如何命名版本的约定。所以我们想要一个像
${shortname}-${project.version}-${release}.noarch.rpm
.
我想使用 rpm-maven-plugin 而不是旧的 nmake 技术来构建这样的 rpm。
这很容易使用插件的参数来完成。在目标目录中生成的 rpm 具有所需的名称。
但是,当mvn install
将此 rpm 安装到 maven 存储库时,它坚持以“maven 方式”存储它:${project.artifactId}-${project.version}.rpm
我希望使用最初在包上创建的名称将 rpm 存储在标准 maven 存储库目录中。
我怎样才能做到这一点?
更新:我尝试使用 maven-install-plugin (安装文件目标)并没有得到我想要的结果。但这部分是因为我没有正确调用它。它没有被调用。如果您定义一个安装文件目标,它必须明确地绑定到安装阶段。这样做,即<phase>install</phase>
在配置中添加一个至少调用了我想要的安装的执行,但它仍然不允许我根据需要命名 rpm。
maven - RPM 依赖项如何覆盖不同版本的 Tomcat?
我正在使用 rpm-maven-plugin 创建一个 RPM。我想依赖 Tomcat 6 或更高版本,所以:-
所以我创建了一个 Vagrant 初始化的 VM 并尝试安装 Tomcat:-
所以我改为通过 tomcat6 包安装,这很好。问题是 tomcat6 install 不满足我的 RPM 依赖关系,因为它是tomcat6
而不是tomcat
. 你怎么解决这个问题?
据我所知,没有办法 OR 依赖关系,所以我不能tomcat >= 6 or tomcat6 or tomcat7 or tomcat8
以某种方式做,无论如何这都会很丑陋。
maven - 如何防止 maven 程序集插件重命名工件
在我的 Maven 项目中,我必须使用(相当大量)RPM。为了在部署过程中方便起见,我想将所有 RPM 组合到一个存档 (.tar.gz) 中。该程序集在一个单独的模块中运行,该模块依赖于所有 RPM 模块。
为此,我有以下内容assembly.xml
:
这很好用,但它重命名了我所有的 RPMS 以遵循以下格式:<projectname>-<version>.rpm
. 在 RPM 命名约定中丢失有用的属性:<rpm name>-<version>-<release>.noarch.rpm
. RPMS 仍然可以正常工作。
我怀疑这来自 maven 程序集属性outputFileNameMapping。
我的假设正确吗?如果是这样,如何防止程序集插件重命名我的 RPM 文件?