我正在使用rpm-maven-plugin来创建包含我项目中WAR的tarball的rpm。如果我已经有一个tar文件,我可以创建一个rpm。但是,我想在运行rpm目标时生成tar文件。
我有一个创建tar文件的脚本。我在准备步骤中调用脚本,但是在脚本执行时已经创建了rpm,因此tar不包含在我的rpm中。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>rpm-maven-plugin</artifactId>
<version>2.1-alpha-4</version>
<executions>
<execution>
<id>generate-rpm</id>
<goals>
<goal>rpm</goal>
</goals>
</execution>
</executions>
<configuration>
<mappings>
<mapping>
<directory>/foo</directory>
<sources>
<source>
<location>DIRECTORY_FOR_MY_TAR</location>
</source>
</sources>
</mapping>
</mappings>
<defineStatements>
<defineStatement>_unpackaged_files_terminate_build 0</defineStatement>
</defineStatements>
<prepareScriptlet>
<script>./../../../../scripts/rpm/prepare/makeATar.sh</script>
</prepareScriptlet>
</configuration>
</plugin>
当我运行mvn rpm:rpm
时,makeATar脚本会在DIRECTORY_FOR_MY_TAR中创建一个tar,但它不包含在我的rpm中。如果我再次运行mvn rpm:rpm
,我的tar将成功包含在rpm中(因为它是在我上次运行mvn rpm:rpm
时执行makeATar时被放入DIRECTORY_FOR_MY_TAR中的。)
答案 0 :(得分:3)
我们也有类似的设置,我们构建一些工件,然后使用 rpm -maven-plugin 将它们打包到RPM中。
为了在我们打包为RPM之前安排工件,我们
对我们来说效果很好。
您还可以将 rpm-maven-plugin 执行绑定到安装阶段,并使用包阶段中包的工件。 />
或将RPM打包放在单独的maven模块中,并在构建完所有其他模块后构建它(并按计划打包它们的工件)。
我希望这会有所帮助。