Maven rpm插件尝试在构建时运行安装脚本

时间:2015-04-12 14:03:49

标签: java maven rpm rpm-maven-plugin

我正在尝试创建一个RPM软件包来安装一个软件,但每当我尝试使用rpm插件构建它时,它将运行安装脚本,而构建将失败,因为我的机器不是预期的目标(也不应该它是)

设置是这个

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>rpm-maven-plugin</artifactId>
    <version>2.1.2</version>
    <extensions>true</extensions>
    <configuration>
        <group>Applications/Software</group>
        <mappings>
            <mapping>
                <directory>/tmp/${project.artifactId}</directory>
                <filemode>755</filemode>
                <username>user</username>
                <groupname>group</groupname>
                <sources>
                    <source>
                        <location>src/main/resources/</location>
                    </source>
                </sources>
            </mapping>
        </mappings>
        <requires>
            <require>unzip</require>
        </requires>
        <preinstallScriptlet>
            <scriptFile>src/main/scripts/preinstall.sh</scriptFile>
            <fileEncoding>utf-8</fileEncoding>
        </preinstallScriptlet>
        <installScriptlet>
            <scriptFile>src/main/scripts/install.sh</scriptFile>
            <fileEncoding>utf-8</fileEncoding>
        </installScriptlet>
    </configuration>
</plugin>

我还将pom包装配置为rpm,我正在运行“mvn clean package”来生成rpm。 这只是一个构建器项目,意味着它所要做的就是将rpm中src / main / resources中的所有文件与scriptlet一起打包,这些scriptlet将在某个目标机器上运行rpm时执行。

我错过了什么吗?

我在安装了rpmbuild的Ubuntu 14.04机器上构建rpm

1 个答案:

答案 0 :(得分:3)

我刚刚阅读了RPM文档,发现这是完全正确的。在构建RPM时调用安装scriptlet,您可能需要的是预安装或安装后脚本。安装本身(复制文件)由RPM完成。

参考:http://www.rpm.org/max-rpm/s1-rpm-inside-scripts.html