使用工作区外的jenkins通过SSH移动文件

时间:2013-05-10 09:26:21

标签: ssh jenkins liferay

我正在尝试为liferay插件创建一个作业并使其构建战争,然后通过Publish over SSH插件将其传输到远程liferay门户。

我的工作空间位于SDK portlets目录中。问题是liferay SDK的构建脚本是在更高级别的工作区外的目录上创建战争,所以相对路径是../dist 目录结构如下所示

- SDK root
+ - ...
  - dist (the dir where the war is being created)
  - ...
  - portlets (the workspace of my job)
  - ...

因此,当我将相对路径[../dist/portlet_name.war]提供给SSH发布者的“源文件”字段时,它会找到要传输的0个文件:

SSH: Connecting SFTP channel ...
SSH: Connected
SSH: cd [/opt/liferay-portal]
SSH: OK
SSH: Disconnecting configuration [server_name [liferay]] ...
SSH: Transferred 0 file(s)

我也试图给出绝对路径,但没有成功。

有办法获取文件吗?提前谢谢。

1 个答案:

答案 0 :(得分:2)

在这种情况下找到this

  

最简单的解决方案可能是使用构建步骤将文件复制到工作区中。

因此,您需要在传输文件之前添加“执行Shell”步骤:

# current dir is your job's workspace
rm -fr your.file
cp ../../anotherJob/workspace/target/your.file