本文逐渐涉及当前敏捷开发中非常火的DevOps相关的技术,也就是自动化开发运维。整体偏向于环境搭建,整体学习路线为:
(1)SpringBoot+Gradle+Nexus远程仓库构建打包工程jar
(2)搭建docker容器环境学习软件运行环境的搭建
(3)搭建jenkins环境并自动关联打包好的工程jar进行自动发布
(4)搭建K8S环境进行使用学习
本文主要对第一点怎么使用Gradle构建工程进行总结,后面小点可以查看文末的链接循序渐进了解整个过程。
(一)SpringBoot+Gradle工程构建打包工程jar
我们知道使用SpringBoot可以很容易搭建一个简单的web运行环境,主要是运用了springboot为我们自动配置的一系列配置和tomcat容器环境。但是当一个SpringBoot工程代码编写完之后需要发布,就没办法用那一套进行线上发布了,就必须要将需要运行的工程资源进行有机整合之后,再打包出来才可以进行线上发布。一般来说对于项目的构建打包通用可以用Maven或Gradle,由于Maven的构建打包非常耗时,因此一般来说使用Gradle可以很快替代Maven进行快速打包构建。
下面将以实际样例,介绍怎么使用Gradle打包构建出一个可以直接运行的jar/war工程,当然需要一定的Gradle基础或实际项目使用经验,关于Gradle的基础知识可以查阅小编的其它文章gradle基础+Groovy描述笔记(一)_喜欢火影的木易杨的博客-CSDN博客
不多说,直接show the code...
首先:新建一个Gradle SpringBoot项目可以看到build.gradle文件,添加启动类、properties文件、common.gradle文件,整体工程结构大致如下(由于最近在接触SpringCloudNacos相关的东西所以工程集成了Nacos的相关依赖,该工程主要是作为一个注册在Nacos作为服务方的工程):
(1)NacosProviderApplication:如果最后打包出来的工程可以正常启动,那么会有一行====日志输出
package com.alibaba.nacos.example.spring.cloud;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
/**
*/
@SpringBootApplication
@EnableDiscove