【问题标题】:Remove the dependency on Python while building RPM using rpm-maven-plugin使用 rpm-maven-plugin 构建 RPM 时移除对 Python 的依赖
【发布时间】:2019-09-23 11:56:17
【问题描述】:

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

【问题讨论】:

    标签: java maven rpm rpm-maven-plugin


    【解决方案1】:

    通过手动覆盖需求部分使其工作

    ...
    <autoRequires>no</autoRequires>
    <autoProvides>no</autoProvides>
    <requires>
      <require>java-11-openjdk-headless</require>
    </requires>
    ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-20
      • 2014-12-25
      • 2019-12-30
      • 2020-01-03
      • 2016-11-06
      • 1970-01-01
      • 2014-12-09
      相关资源
      最近更新 更多