通过SSH与jenkins在工作区外移动文件

问题描述:

我正在尝试为liferay插件创建一个工作,并使其构建战争,然后通过Publish over SSH插件将其转移到远程liferay门户。通过SSH与jenkins在工作区外移动文件

我工作的工作区位于SDK portlets目录中。问题是,Liferay的SDK的构建脚本是创建在更高的层次上工作区之外的目录战争,所以相对路径是../dist 的目录结构看起来像这样

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

所以当我给它找到的SSH发行的“源文件”栏中的相对路径[../dist/portlet_name.war] 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) 

我也想给的绝对路径,但没有成功。

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

+0

我已经找到了一个可能的解决方案,但它似乎并不很优雅。 在“Advanced Project Options”中,我将其设置为liferay SDK根目录的自定义工作区,然后在Subversion部分的“Source Code Management”中将“Local module option”设置为“portlets/ModulePortletName”。旧值是“ModulePortletName”。通过这个技巧,我将工作空间目录提高了1级,所以现在我可以用SSH来“看”dist目录。 但是我相信这个问题有更好的解决方案... – 2013-05-10 12:04:28

找到this这种情况下,

最简单的办法可能会是将文件复制到使用生成步骤您的工作空间。

所以你需要transfering文件前加上“执行shell”的步骤:

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

一个符号链接就够了... ln -s ../../anotherJob/workspace/target/your.file your.file – AlonL 2014-05-12 15:27:49