发表于: 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 文件接受的传参并不能直接在文件内部的函数中直接使用,需要在使用函数的时候在后面再加上那个参数。

示例:

  1. #!/bin/bash  
  2.   
  3. # 调用文件传进了参数 $1  
  4.   
  5. fun()  
  6. {  
  7. string=$1  
  8. }  
  9. fun $1  

这个地方与其他语言有点不一样,需要注意。


4. shell 

shell 的语法比较杂,不好记,我只是简单的过了一下它的基本语法就开始写了,需要的时候多去搜一下就好。

比如前面截取子字符串的时候,我一直尝试用 ${FILE_NAME:x1:x2} 这样的方案去截取(学的时候只看到了各种方案),去搜了一下才发现它有很多种截取子字符串的方法,终于选了一个合适的解决了这个问题。


收获:

1. 编写简单的 shell 脚本。


明天的计划:

1.用Spring messageSource 配置错误信息,在接口处做校验,根据错误的类型返回对应的错误信息

2.配置Nginx,配置域名指向Resin,本地配置Host,通过域名在浏览器,Postman等测试数据




这周加油把任务二完结。


520 是什么东西?


返回列表 返回列表
评论

    分享到