发表于: 2020-05-20 22:33:14
1 1417
今天完成的事情:
步骤.编写部署脚本,部署到服务器的开发环境,用Postman测试是否成功
今天完成了 shell 的基本语法学习,编写了 jetty 与 tomcat 的部署脚本,目前只能是手动把 war 上传到服务器 /root 目录,然后启动脚本来部署。
测试是没有问题的,就不再这里贴了。
目前 resin 的部署还有点问题,我原来使用命令行的部署方式很方便,但是需要输入 resin 管理员账号与密码,我有点不想把这些写在 sh 文件中,想在看一下有没有别的比较好的方式,其实就按照原来的部署方法今天也是能写出来用的。
代码太长不在这里展示,已经上传 github 了,链接附在日报下方。
遇到的问题:
1. exec
exec 这个命令用于执行其他的 sh 文件,但是一旦使用当前 sh 文档的生命周期就结束了,我原来以为可以多次调用,结果流程没有按照我的预想走。
解决方法:
直接把 exec 去掉,一样可以调用其他的 sh 文件,执行完了还能再回来。
2. 生成 jetty websapps 下的项目同名 xml 文件
截取示例代码片段如下:
- # Author MoGeek
- # 生成 jetty webapps 文件夹下项目同名配置文件
- FILE_NAME=`ls`
- XML_NAME=${FILE_NAME%%.*}.xml
- echo "create file: ${XML_NAME}"
- cat > ${XML_NAME} << END_FILE
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
- <Configure class="org.eclipse.jetty.webapp.WebAppContext">
- <Set name="contextPath">/</Set>
- <Set name="war">${JETTY_HOME}/webapps/${FILE_NAME}</Set>
- </Configure>
- END_FILE
其中 XML_NAME 的生成那一段使用了 shell 字符串截取的方法,详细解析如以下链接:http://c.biancheng.net/view/1120.html
生成配置文件要注意,文件内容部分一定要顶格写,不要为了排版美观也在前面加空格 TAB 之类的,否则生成的文件中每一行前面也会有空格与 TAB,jetty 运行会报错。
3. shell 文件的传参作用域
shell 文件接受的传参并不能直接在文件内部的函数中直接使用,需要在使用函数的时候在后面再加上那个参数。
示例:
- #!/bin/bash
- # 调用文件传进了参数 $1
- fun()
- {
- string=$1
- }
- fun $1
这个地方与其他语言有点不一样,需要注意。
4. shell
shell 的语法比较杂,不好记,我只是简单的过了一下它的基本语法就开始写了,需要的时候多去搜一下就好。
比如前面截取子字符串的时候,我一直尝试用 ${FILE_NAME:x1:x2} 这样的方案去截取(学的时候只看到了各种方案),去搜了一下才发现它有很多种截取子字符串的方法,终于选了一个合适的解决了这个问题。
收获:
1. 编写简单的 shell 脚本。
明天的计划:
1.用Spring messageSource 配置错误信息,在接口处做校验,根据错误的类型返回对应的错误信息
2.配置Nginx,配置域名指向Resin,本地配置Host,通过域名在浏览器,Postman等测试数据
这周加油把任务二完结。
520 是什么东西?
评论