1、创建工程后项目的"源码管理"->"Git"->"Repositories"配置中,Repository URL的地址填写需要注意:如果你的URL是http协议的地址,直接填入就好;如果你的URL是ssh协议的地址,则需要把"ssh://"去掉之后再填入。例如:完整地址为ssh://git@127.0.0.1:test.git,填入的时候只需要填入git@127.0.0.1:test.git即可,否则会报如下错误:
Failed to connect to repository : Command "/usr/bin/git ls-remote -h ssh://git@127.0.0.1:test.git HEAD" returned status code 128:
stdout:
stderr: ssh: Could not resolve hostname : Name or service not known
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
如果下面的Credentials配置有问题,也会报上述错误。
2、jenkins自动部署中可以通过配置shell脚本启动tomcat,但是tomcat不启动的问题:虽然通过查看后台执行日志明确看到了tomcat的启动日志,但是实际检查却发现tomcat并未启动成功。真实的原因是:Jenkins会在构建完成后使用processTreeKiller杀掉了所有子进程,而且这是Jenkins的默认行为。所以tomcat实际上是启动成功了,只不过又被Jenkins杀死了,解决方法有如下两种:
(1)启动 Jenkins 的时候加上 -Dhudson.util.ProcessTree.disable=true。
(2)在后台进程前加上 BUILD_ID=dontkillme。(名称随意取)
3、分享一下个人的Maven构建及部署到tomcat并重启tomcat的shell脚本。
export BUILD_ID=dontkillme
mvn clean package -Dmaven.test.skip
echo ${WORKSPACE}
echo ${JOB_NAME}
echo ${BUILD_ID}
ps aux |grep java |grep tomcat-8080 |grep -v grep |grep -v tail |awk '{print $2}' |xargs kill -9
cp -f ${WORKSPACE}/target/test.war /usr/local/tomcat-8080/webapps/test.war
sleep 5
/usr/local/tomcat-8080/bin/startup.sh
参考文档:
https://blog.csdn.net/weixin_39483907/article/details/80840948