我正在使用 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 中(因为它是在我上次运行时从 makeATar 的执行中放入 DIRECTORY_FOR_MY_TAR 的mvn rpm:rpm
)。