0

我想使用 Maven 生成 zip 格式的工件。给你一些背景;我的项目包括一个 APS 包(应用程序打包标准,用于在 Parallels 平台上配置云应用程序)。此包是一个 zip 文件,其中包含 XML 和 PHP 文件的组合。它由 Eclipse 中的 APS 插件生成,其名称始终包含其内容的版本和发布号。

我想要做的是使用 Maven 生成一个 zip 文件,它是一种最终将发送给客户的候选版本,不仅包括实际的 APS 包,还包括其他文件,如 README、User Guide.pdf、 ETC;。我希望这个 zip 文件的名称包含 APS 包的版本号。目前我可以通过使用“mvn -Dversion=1.2.3-4 package”之类的东西手动生成它,但我想自动化这个过程并最好从 Jenkins 运行它。

基本上,我的策略是运行一个脚本,从初始 APS 包中提取版本号,一旦完成,我的脚本可以调用 Maven 并将这个参数传递给它,以便它可以生成具有正确版本号的最终 zip . 这很好,但我需要手动运行这个脚本,我正在寻找一个自动化的过程。

我的问题是;是否可以从 Maven 中调用此脚本并使用其返回作为参数在运行时设置版本名称(或将生成的文件的名称)?正如我所提到的,我最终希望 Jenkins 来处理这个问题。它可以获取 pom 文件,但我不确定它如何“自动配置”自身以拥有正确的版本号。

谢谢是提前。

4

2 回答 2

1

从 jenkins 构建中,您可以使用带有${BUILD_NUMBER}的配置文件:

<profile>
         <id>jenkins</id>
         <build>
             <finalName>${artifactId}-${version}-${BUILD_NUMBER}</finalName>
          </build>
</profile>

然后在詹金斯中运行:

clean install -Pjenkins

于 2013-10-11T07:14:07.740 回答
0

我使用 SVN(或任何源版本控制系统)版本来识别软件版本。

通过简单地执行这个

REVISION=`svn info | grep '^Revision:' | sed -e 's/^Revision: //'`

在 sourcers 文件夹中,您可以在 $REVISION 中获得正确的值,然后您可以将它用于您的 maven 构建

mvn -Dversion=1.2.3-$REVISION package

简单干净

于 2013-10-11T09:29:58.650 回答