Jenkins问题记录

compile 'com.google.android.gms:play-services-auth:9.4.0'
找不到Google的
解决:
需要编译的电脑上的Android sdk里面的extra要有Google的支持包:
extras/google/m2repository/com/google/android/gms/play-services-auth


--------------------------
找不到子module的jar包
解决:
jar 名字不能大写

--------------------------
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1752)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1725)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1721)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1391)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1403)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.clean(CliGitAPIImpl.java:678)
at hudson.plugins.git.GitAPI.clean(GitAPI.java:311)
at hudson.plugins.git.extensions.impl.CleanCheckout.onCheckoutCompleted(CleanCheckout.java:28)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1137)
at org.jenkinsci.plugins.multiplescms.MultiSCM.checkout(MultiSCM.java:143)
at hudson.scm.SCM.checkout(SCM.java:495)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1278)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:604)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:529)
at hudson.model.Run.execute(Run.java:1720)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:401)

scm 插件checkout失败
解决:
删除代码文件,重试成功


======================================

https://stackoverflow.com/questions/24729024/open-firewall-port-on-centos-7
centos7 打开8080端口

Use this command to find your active zone(s):

firewall-cmd --get-active-zones
It will say either public, dmz, or something else. You should only apply to the zones required.

In the case of dmz try:

firewall-cmd --zone=dmz --add-port=2888/tcp --permanent
Otherwise, substitute dmz for your zone, for example, if your zone is public:

firewall-cmd --zone=public --add-port=2888/tcp --permanent
Then remember to reload the firewall for changes to take effect.

firewall-cmd --reload


================================================

centOs防火墙放行Samba
systemctl start firewalld.service
firewall-cmd --permanent --add-service=samba


===================================================
ftp登录之后查看不了文件
https://www.0xaa55.com/thread-1149-1-1.html

解决办法:运行 getsebool -a | grep ftpd 判断查看权限。
[Bash shell] 纯文本查看 复制代码
?
1
getsebool -a | grep ftpd
通常会显示如下内容:
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftpd_connect_db --> off
ftpd_use_passive_mode --> off
ftp_home_dir --> off
其中,ftp_home_dir和allow_ftpd_full_access必须为on才行。
运行以下命令:
[Bash shell] 纯文本查看 复制代码
?
1
2
setsebool -P ftp_home_dir 1
setsebool -P allow_ftpd_full_access 1
注意这两条命令一般需要花上十几秒钟才能运行完(也许是我的VPS不太好吧)
运行完了以后,我们再重新恢复SELinux进入Enforcing模式。
[Bash shell] 纯文本查看 复制代码
?
1
setenforce 1 #进入Enforcing模式
如果不出意外的话,vsFTPd就可以正常上传下载文件了。

但是如果就此问题还没解决的话,可能是FTP访问的目录属性不够。建议用 chmod -R 777 路径 将路径读写属性设置为777,再尝试,通常也能解决问题。
### 如何在 Jenkins Pipeline 中获取变更记录Jenkins Pipeline 的上下文中,可以通过 `currentBuild.changeSets` 或者使用 Groovy 脚本访问当前构建的变更集来获取变更日志。以下是具体的实现方法: #### 使用 `currentBuild.changeSets` `currentBuild.changeSets` 是一个内置变量,用于存储当前构建中的所有变更信息。它返回的是一个列表对象,其中包含了每次提交的相关数据。 ```groovy pipeline { agent any stages { stage('Get Change Log') { steps { script { echo "Change Logs:" currentBuild.changeSets.each { changeSet -> changeSet.items.each { item -> echo "${item.msg} by ${item.author}" } } } } } } } ``` 上述脚本会遍历所有的变更集合,并打印每条提交的消息以及作者的信息[^1]。 #### 使用 `changelog.xml` 文件 另一种方式是从 Jenkins 自动生成的 XML 格式的变更日志文件中读取变更信息。此文件通常位于 `${WORKSPACE}/changelog.xml` 下。 ```groovy pipeline { agent any stages { stage('Read Changelog from File') { steps { script { def changelogFile = readFile(file: 'changelog.xml') echo "Changelog content:\n${changelogFile}" } } } } } ``` 需要注意的是,在某些情况下可能需要手动创建该文件或将路径调整至实际位置[^2]。 #### 结合邮件通知发送变更日志 如果希望将这些变更日志作为电子邮件的一部分发送出去,则可以在 `post` 部分定义邮件内容模板并将变更日志嵌入进去。 ```groovy pipeline { agent any post { always { emailext ( subject: "Job '${env.JOB_NAME}' (${env.BUILD_NUMBER})", body: """<p>Build Result: ${currentBuild.result}</p> <h3>Changes:</h3><ul>${CHANGES}</ul>""", to: "example@example.com" ) } } stages { stage('Collect Changes') { steps { script { CHANGES = "" currentBuild.changeSets.each { cs -> cs.items.each { ci -> CHANGES += "<li>${ci.msg} by ${ci.author}</li>" } } } } } } } ``` 这里我们利用了一个全局变量 `CHANGES` 来累积所有的变更描述,并将其注入到 HTML 格式的邮件正文中[^3]。 --- ####
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值