使用 rpm-maven-plugin 构建 RPM 时消除对 Python 的依赖

我正在使用 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。


目标 docker 镜像运行简单的 SLES linux,只包含所需的内容,并且没有 Python。


三国纷争
浏览 175回答 1
1回答

桃花长相依

通过手动覆盖需求部分让它工作...<autoRequires>no</autoRequires><autoProvides>no</autoProvides><requires>&nbsp; <require>java-11-openjdk-headless</require></requires>...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java