高级配置中,可以添加需要排除的文件,用于在转换过程中,排除上传的文件,**
表示全文本匹配。
笔者案例,填写如下:
确认无后,点击保存。回到项目页面,进行立即构建,查看项目控制台输出如下:
# 省略以上内容 C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins\.jenkins\workspace\ynkenginemap\JenkinsDemo>exit 0 SSH: Connecting from host [LAPTOP-86GF4FKI] SSH: Connecting with configuration [localserver] ... SSH: Disconnecting configuration [localserver] ... SSH: Transferred 7 file(s) Finished: SUCCESS
通过 xshell
可以看到对应工作目录中,已经生成一个 jenkins
的文件目录,文件目录中,包含对应本地发布的项目文件。
C:\Users\ggcyuser>dir jenkins 驱动器 C 中的卷是 Windows 卷的序列号是 22DB-1BE1 C:\Users\ggcyuser\jenkins 的目录 2021/10/06 20:35 <DIR> . 2021/10/06 20:35 <DIR> .. 2021/10/06 20:35 168 appsettings.Development.json 2021/10/06 20:35 106,809 JenkinsDemo.deps.json 2021/10/06 20:35 9,216 JenkinsDemo.dll 2021/10/06 20:35 174,592 JenkinsDemo.exe 2021/10/06 20:35 20,016 JenkinsDemo.pdb 2021/10/06 20:35 311 JenkinsDemo.runtimeconfig.json 2021/10/06 20:35 555 web.config 7 个文件 311,667 字节 2 个目录 34,109,632,512 可用字节
此时,可能读者就会问,那如果需要远程访问的文件目录,并不是当前账户所在的根目录如何处理?
其实对于这个问题,分情况处理,主要针对远程账户默认用户目录与非默认目录。
3.1、默认用户目录
默认空间下的子级目录切换可以通过配置的 SSH Servers
进行处理,在配置 SSH Servers
就提到过如下输入字段:
Remote Directory 远程访问时,非默认访问路径时,需要用户依据实际需求进行指定(Windows仅仅适用于当前盘符)。
如果用户有实际需求,可以在当前字段中进行特定目录的目录配置,需要注意的是,目前笔者测试结果为通过 SSH Server
方式仅仅适用于当前Windows
服务端的所在盘符,跨盘符操作不支持。
此处为了方便,笔者选择非默认目录,设置为服务器中的目录 jenkins
,配置一个新的 SSH Severs
,具体内容如下:
项目配置中对应的 SSH Server
修改为当前配置好的 directoryserver
:
保存后,进行构建,控制台输出如下:
# 省略以上内容 C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins\.jenkins\workspace\ynkenginemap\JenkinsDemo>exit 0 SSH: Connecting from host [LAPTOP-86GF4FKI] SSH: Connecting with configuration [directoryserver] ... SSH: Disconnecting configuration [directoryserver] ... SSH: Transferred 7 file(s) Finished: SUCCESS
3.2、非默认目录
虽然无法直接切换目录,但是可以考虑在文件上传后,通过指令方式,将上传的文件进行指定目录的拷贝,此时需要使用的到 Exec command
输入框,进行输入转换之后的文件其他处理操作。
当前指令xcopy /s /y jenkins "E:\Study\Servers\jenkins"
,表示拷贝并在目标文件夹文件存在时进行强制覆盖操作,在 xshell
中能够正常使用,保存后,进行 Build Now
,查看控制台输出结果如下:
# 省略以上内容 C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins\.jenkins\workspace\ynkenginemap\JenkinsDemo>exit 0 SSH: Connecting from host [LAPTOP-86GF4FKI] SSH: Connecting with configuration [localserver] ... SSH: EXEC: completed after 201 ms SSH: Disconnecting configuration [localserver] ... SSH: Transferred 7 file(s) Finished: SUCCESS
SSH
远程可以直接执行指令,而不考虑文件转换和拷贝,上述操作可以将文件转换和指令执行进行拆分,操作如下:
上述为笔者对自定义构建项目的操作与技巧说明。
四、参考链接
[1]官方文档:
https://www.jenkins.io/zh/doc/
[2] 文件目录拷贝:
https://blog.csdn.net/ak47007tiger/article/details/95749419
[3] 远程OpenSSH
配置: