Я использую rpm-maven-plugin для создания RPM установки / обновления для моего приложения, которое будет установлено в CentOS 7.
Для новой установки требуются некоторые пакеты, однако rpm-maven-plugin игнорирует настройки в файле rpm.spec (поэтому «Требуется:» не будет работать), и невозможно выполнить yum или rpm из-за RPM скрипты.
Существует ли конфигурация для плагина, который сообщает RPM об установке необходимых пакетов (в данном случае PostgresDB и sshpass)?
Если нет, то какой вариант лучше? Скажите клиенту установить требования вручную перед установкой RPM или создать сценарий оболочки, который обрабатывает полную настройку?
Вот соответствующая часть pom.xml:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>rpm-maven-plugin</artifactId>
<version>${rpm-maven-plugin.version}</version>
<inherited>false</inherited>
<executions>
<execution>
<inherited>false</inherited>
<phase>install</phase>
<goals>
<goal>rpm</goal>
</goals>
</execution>
</executions>
<configuration>
<license>Commercial</license>
<group>Networking/Admin</group>
<name>name</name>
<packager>packager</packager>
<prefix>$prefix</prefix>
<version>${project.version}</version>
<release>release</release>
<needarch>x86_64</needarch>
<mappings>
...
</mappings>
<requires>
<require>postgresql >= ${rpm.postgresql.version}</require>
<require>java-1.8.0-openjdk</require>
<require>sshpass</require>
</requires>
<postinstallScriptlet>
<script>
cd /opt/%{name}
if [ "$1" = 1 ] ; then
if [ -e ./install.sh ]; then
sh ./install.sh;
fi
fi
if [ "$1" = 2 ] ; then
sh ./upgrade.sh
fi
</script>
</postinstallScriptlet>
</configuration>
</plugin>
</plugins>
</build>