这段时间,一直修炼boot然后又补了一波sql知识,感觉脑子里知识很多很多,需要梳理出来,所以决定启动一个boot项目,做一个比较完整的项目
为了不让自己半途而废,我觉得将每日做的内容实时更新到线上,所以我在搭建好项目框架后,第一时间就是启动一个自动发布到线上的脚本.
项目启动
我使用的idea的快速启动boot项目启动的,不习惯的可以用官网的startspring.io
使用jar包编译打包,这里展示一下初始化的pom
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
</dependencies>
使用-dev,-prod来控制正式测试版本发布
使用默认的freemarker做渲染引擎,这里写两个测试接口
@Controller
public class HelloController {
@RequestMapping("/api/hello")
@ResponseBody
public String apiHello() {
return "{'a':'helloooooooooooo'}";
}
@RequestMapping("/hello")
public String hello() {
return "hello";
}
}
开放了端口8888,需要在发布到阿里云时开放8888/8888的出入方向的安全组,否则无法访问
之前写自动化发布的时候已经介绍过怎么发布到tomcat下,这里贴一下如何发布jar包
前提环境:
- 远程配置ssh
- 远程安装maven并配置环境变量
下面是我自己摸索并测试可用的脚本
echo "===========进入git项目crm目录============="
cd /developer/git-repository/crm
echo "==================git fetch======================"
git fetch
echo "==================git pull======================"
git pull
echo "===========编译并跳过单元测试===================="
mvn clean package -Dmaven.test.skip=true
echo "===========杀死运行中的进程=========="
crm_id=`ps -ef | grep crm | grep -v "grep" | awk '{print $2}'`
echo $crm_id
for id in $crm_id
do
kill -9 $id
echo "杀死crm进程号 $id"
done
echo "======拷贝编译出来的jar包到项目路径======="
yes | cp /developer/git-repository/crm/target/crm.jar /home/crm.jar
echo "================sleep 3s========================="
for i in {1..3}
do
echo $i"s"
sleep 1s
done
echo "====================启动jar====================="
nohup java -jar /home/crm.jar > /dev/null 2>&1 &
正式访问,脚本测试可用(地址没放出来是怕被当成肉鸡...毕竟没做什么安全防护,等后续完成了会放出来的....)
后面,开始正式开发我的项目..........
网友评论