有点晚了,但我只是注意到,你有我面对的完全相同的问题。我需要能够在AIX机器上的Windows盒子上部署任意构建工件。部署过程需要在AIX机器上本地运行。因此,我在AIX框中定义了从Windows上运行的构建作业下载构建工件的从站。主人在Windows机器上。
简而言之,构建作业存档必要的构件并以其构建URL作为参数触发部署作业(它实际上是一个“运行参数”,但字符串也可以)。部署作业使用wget
来确定工件URL(它会搜索包含特定文本的工件ID,例如没有版本的工件名称),然后再次使用wget
下载工件。 wget
将其保存为没有版本,以便我所有的部署脚本都可以在未版本化的名称上运行。您也可以使用第一步来查找有关工件名称的信息。
wget使用远程API(xml版本)。如果你不想使用wget,有一个命令行工具可以为你做连接。
您可以通过将以下字符串附加到构建作业的运行URL并在Web浏览器中使用生成的URL来测试它。
#to find the path (URL) of the artifact
api/xml?xpath=*/artifact[contains(fileName,"MyApp")]/relativePath/text()
#to find the path (URL) of the artifact with more than 1 string to match
#the match must identify exactly one artifact, otherwise you will
#get an error message
api/xml?xpath=*/artifact[contains(fileName,"MyApp") and contains(fileName,".ear")]/relativePath/text()
#To download the artifact
#replace $relativePath with the actual output from one of the queries above
artifact/$relativePath
我不知道如何轻松暴露它。以防万一, - [Maven Versions Plugin](http://mojo.codehaus.org/versions-maven-plugin/)有一个['versions:lock-snapshots'](http://mojo.codehaus。 org/versions-maven-plugin/lock-snapshots-mojo.html)目标允许*解锁未锁定的快照依赖版本到锁定的时间戳版本*。也许你可以围绕这个建立一个解决方案。 – 2010-07-10 14:16:52
感谢帕斯卡,这是一个有趣的插件,可能能够解决我的问题。我一定会考虑这一点。 – porterhouse91 2010-07-12 13:46:51
使用快照的另一种方法是,第一个Hudson作业将SVN修订版编号包含在WAR文件的名称中,然后使用参数化触发器插件触发第二个作业,并使用“预定义”参数(其值为内置$ {SVN_REVISION}属性。第二个Hudson作业然后可以使用该值生成要从Maven回购站下载的WAR文件的名称。 – 2010-12-07 23:59:03