Удалите зависимость от Python при сборке RPM с помощью rpm-maven-plugin - PullRequest
0 голосов
/ 23 сентября 2019

Я использую rpm-maven-plugin для сборки rpm как части моей сборки mvn, которая позже будет установлена ​​в образ докера без Python.Python также не используется в проекте.Но по какой-то причине в сгенерированном spec-файле есть строка

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.

Образ целевого докера запускает голые SLES linux с тем, что естьтребуется и не имеет Python.

1 Ответ

0 голосов
/ 23 сентября 2019

Получилось, вручную переопределив необходимый раздел

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