使用 rpm-maven-plugin 构建 RPM 时删除对 Python 的依赖
Remove the dependency on Python while building RPM using rpm-maven-plugin
我正在使用 rpm-maven-plugin 构建一个 rpm 作为我的 mvn 构建的一部分,稍后将安装在没有 Python 的 docker 图像中。 Python 也未在项目中使用。但由于某种原因,生成的规范文件有行
Requires: python >= 2.6
我试着输入
<autoRequires>no</autoRequires>
<autoProvides>no</autoProvides>
但效果不佳。这导致 docker 构建失败,因为 rpm 安装因缺少依赖项而失败。如何删除对 python 的依赖?
以下是我的 pom.xml
的摘录
...
<version.rpm-maven-plugin>2.2.0</version.rpm-maven-plugin>
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>rpm-maven-plugin</artifactId>
<executions>
<execution>
<id>generate-rpm</id>
<phase>package</phase>
<goals>
<goal>rpm</goal>
</goals>
</execution>
</executions>
<configuration>
<group>XXX</group>
<vendor>XXX</vendor>
<copyTo>
target/${install.package.name}-${project.version}.rpm
</copyTo>
<targetOS>linux</targetOS>
<autoRequires>no</autoRequires>
<autoProvides>no</autoProvides>
<mappings>
...
</mappings>
<preinstallScriptlet>
<scriptFile>${basedir}/src/main/package/control/preinst</scriptFile>
<fileEncoding>utf-8</fileEncoding>
</preinstallScriptlet>
<postinstallScriptlet>
<scriptFile>${basedir}/src/main/package/control/postinst</scriptFile>
<fileEncoding>utf-8</fileEncoding>
</postinstallScriptlet>
<preremoveScriptlet>
<scriptFile>${basedir}/src/main/package/control/prerm</scriptFile>
<fileEncoding>utf-8</fileEncoding>
</preremoveScriptlet>
<postremoveScriptlet>
<scriptFile>${basedir}/src/main/package/control/postrm</scriptFile>
<fileEncoding>utf-8</fileEncoding>
</postremoveScriptlet>
<cleanScriptlet>
<script>rm -rf ${project.build.directory}/rpm/buildroot</script>
</cleanScriptlet>
</configuration>
</plugin>
maven 版本:3.5.4.
target docker 映像运行基本的 SLES linux,只需要满足要求,但没有 Python。
通过手动覆盖要求部分使其工作
...
<autoRequires>no</autoRequires>
<autoProvides>no</autoProvides>
<requires>
<require>java-11-openjdk-headless</require>
</requires>
...
我正在使用 rpm-maven-plugin 构建一个 rpm 作为我的 mvn 构建的一部分,稍后将安装在没有 Python 的 docker 图像中。 Python 也未在项目中使用。但由于某种原因,生成的规范文件有行
Requires: python >= 2.6
我试着输入
<autoRequires>no</autoRequires>
<autoProvides>no</autoProvides>
但效果不佳。这导致 docker 构建失败,因为 rpm 安装因缺少依赖项而失败。如何删除对 python 的依赖?
以下是我的 pom.xml
的摘录...
<version.rpm-maven-plugin>2.2.0</version.rpm-maven-plugin>
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>rpm-maven-plugin</artifactId>
<executions>
<execution>
<id>generate-rpm</id>
<phase>package</phase>
<goals>
<goal>rpm</goal>
</goals>
</execution>
</executions>
<configuration>
<group>XXX</group>
<vendor>XXX</vendor>
<copyTo>
target/${install.package.name}-${project.version}.rpm
</copyTo>
<targetOS>linux</targetOS>
<autoRequires>no</autoRequires>
<autoProvides>no</autoProvides>
<mappings>
...
</mappings>
<preinstallScriptlet>
<scriptFile>${basedir}/src/main/package/control/preinst</scriptFile>
<fileEncoding>utf-8</fileEncoding>
</preinstallScriptlet>
<postinstallScriptlet>
<scriptFile>${basedir}/src/main/package/control/postinst</scriptFile>
<fileEncoding>utf-8</fileEncoding>
</postinstallScriptlet>
<preremoveScriptlet>
<scriptFile>${basedir}/src/main/package/control/prerm</scriptFile>
<fileEncoding>utf-8</fileEncoding>
</preremoveScriptlet>
<postremoveScriptlet>
<scriptFile>${basedir}/src/main/package/control/postrm</scriptFile>
<fileEncoding>utf-8</fileEncoding>
</postremoveScriptlet>
<cleanScriptlet>
<script>rm -rf ${project.build.directory}/rpm/buildroot</script>
</cleanScriptlet>
</configuration>
</plugin>
maven 版本:3.5.4.
target docker 映像运行基本的 SLES linux,只需要满足要求,但没有 Python。
通过手动覆盖要求部分使其工作
...
<autoRequires>no</autoRequires>
<autoProvides>no</autoProvides>
<requires>
<require>java-11-openjdk-headless</require>
</requires>
...