【问题标题】:Move files over SSH with jenkins outside the workspace在工作区外使用 jenkins 通过 SSH 移动文件
【发布时间】:2013-05-10 09:26:20
【问题描述】:

我正在尝试为 liferay 插件做一份工作,让它建立战争,然后通过 Publish over SSH 插件将其传输到远程 liferay 门户。

我的工作的工作区位于 SDK portlets 目录中。问题是liferay SDK的构建脚本在更高级别的工作区之外的目录上创建了war,所以相对路径是../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)

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

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

【问题讨论】:

  • 我找到了一个可能的解决方案,但它似乎不是很优雅。在“高级项目选项”中,我将自定义工作区设置为 liferay SDK 根目录,然后在 Subversion 部分的“源代码管理”中,将“本地模块选项”设置为“portlets/ModulePortletName”。旧值是“ModulePortletName”。通过这个技巧,我将工作空间目录移到了更高的级别,所以现在我可以根据需要使用 SSH “查看” dist 目录。但我相信这个问题有更好的解决方案......

标签: ssh jenkins liferay


【解决方案1】:

为这个案例找到this

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

所以你需要在传输文件之前添加“Execute Shell”步骤:

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

【讨论】:

  • 一个符号链接就足够了... ln -s ../../anotherJob/workspace/target/your.file your.file
猜你喜欢
  • 2017-12-03
  • 2014-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多