【gradle】MAC下用gradle构建部署springboot项目

MAC下用gradle构建部署springboot项目

  • 前言
  • 下载安装配置gradle
    • 下载安装
      • 下载可能出现的问题 (zsh: command not found: brew)
    • 配置
      • 环境变量
      • 配置国内下载源
        • 全局配置
        • 单个项目配置
  • 通过idea构建项目
    • 构建后的项目结构
  • 小结
  • 延伸

前言

好久以前就听说gradle了,一直没有空出时间和精力学习新知识,趁着有空构建一个。方便idea构建测试项目学习新东西和调试,也捎带着更新下满是灰尘的文章库。之前刚入行有个大佬跟我说学习新东西可以尝试先搞出来再去明白原理,我觉得很适用。我百度了很久都是一步一步自己把碎片拼起来的,希望能帮到你。本文从下载配置gradle开始直到项目成功部署结束。
先说一句,gradle用起来真的很舒服,看项目结构就舒服。目前感觉gradle就是给springboot出的,主打一个“约定大于配置,帮助开发者更快地构建高效的应用程序。”确实高效,快速。
在这里插入图片描述

下载安装配置gradle

首先确保自己电脑是有java的,并且版本在8或以上。

下载安装

默认最新版。

brew install gradle

下载可能出现的问题 (zsh: command not found: brew)

这个是因为我这个电脑没有安装brew命令行,下载安装brew命令行即可。(brew是一个用于macOS和Linux的第三方包管理器,它可以从命令行安装和管理开源的软件)
在这里插入图片描述
下载brew命令行命令(不建议选阿里的下载源,文件实际上都一样的,这里推荐下清华大学下载源,不会限速。如果没有清华大学的下载源了,选其他的,下载慢的话换一个) 这里应该要用到git ,楼主本来就有。

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

下载完之后重新执行安装gradle命令行即可

配置

环境变量

下载完成之后gradle的路径在终端面板内。(目前这个版本在倒数第四行)

vim ~/.bash_profile
# 加入下面的配置
#GRADLE_HOME
GRADLE_HOME=/usr/你的路径/gradle/8.7
export GRADLE_HOME
export PATH=$PATH:$GRADLE_HOME/bin

环境变量生效

source ~/.bash_profile

验证

# 原神,启动!!!
gradle
# 查看环境变量有没有设置成功
gradle -v

在这里插入图片描述

配置国内下载源

不过楼主在构建第一个项目的时候没有先配置国内下载源,下载速度还可以。首次构建用了5,6分钟的亚子。引入了spring-boot-starter-weborg.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2org.springframework.boot:spring-boot-starter-test

全局配置

用户目录下的.gradle文件夹中。路径通常是~/.gradle/init.gradle
新版本没有自动创建init.gradle,新建一个即可。

allprojects {repositories {def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public'// 清除已有的 Maven Central 仓库mavenCentral {url ALIYUN_REPOSITORY_URL}// 添加阿里云的仓库maven { url ALIYUN_REPOSITORY_URL }}
}
单个项目配置

这个文件在build.gradle,需要先构建项目,然后配置在项目中。感觉这种方式对团队项目很友好,配置公司私有库新人pull下来直接就可以上手了。

repositories {mavenLocal()maven { url 'https://maven.aliyun.com/repository/public/' }maven { url 'https://maven.aliyun.com/repository/google/' }maven { url 'https://maven.aliyun.com/repository/gradle-plugin/' }mavenCentral { url 'https://maven.aliyun.com/repository/central/' }jcenter { url 'https://maven.aliyun.com/repository/jcenter/' }
}

通过idea构建项目

需要注意的点都标注了。
server URL 最好替换成https://start.aliyun.com/ 因为io网站提供的gradle包已经不支持8了,JAVA最低版本只能选17了,当然你也可以下载个jdk17. 选择17但本地jdk版本低于该版本的话不能成功构建。
http://127.0.0.1:8080/user/123/roles/222在这里插入图片描述
点击next之后 引入spring-boot-starter-web 即可,如果你要链接数据库把org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2也勾选上。
springboot版本我目前选择的2.6.13,已经有3.0了。为了避免出错,选择2.X。

构建后的项目结构

默认的controller很贴心了,开封即用,可以直接部署然后请求。

http://127.0.0.1:8080/user/123/roles/222

在这里插入图片描述
build.gradle对标pom.xml 在里面配置加入新的包
引入包的话在dependencies加入新的即可 按照
implementation groupId:artifactId:version’’
在这里插入图片描述

小结

构建项目更快了,现在在反过来看gradle的官方介绍,项目自动化构建开源工具 maven也是相同的介绍,不过对比maven的话项目代码更轻量,更简单易上手了。希望本文可以帮到你。

延伸

maven和gradle本身都是项目管理工具,没想到我百度一搜可以一串命令行搞定。
maven项目转gradle项目

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/16144.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RAG概述(一):RAG架构的演进

目录 概述 RAG核心步骤 Indexing索引 Retrieval检索 Generation生成​​​​​​​ Native RAG Advanced RAG Modular RAG 参考 概述 RAG:Retrieval-Augmented Generation 检索增强生成。 RAG通过结合LLMs的内在知识和外部数据库的非参数化数据&#xff…

与MySQL的初相遇

🌎初识MySQL 注:本文SQL语句只为了验证猜想,不会也不要紧。 文章目录: MySql开端 认识数据库       什么是数据库       主流数据库       MySQL的本质 MySQL基础使用       连接mysql服务器     …

自动化您的任务——crewAI 初学者教程

今天,我写这篇文章是为了分享您开始使用一个非常流行的多智能体框架所需了解的所有信息:crewAI。 我将在这里或那里跳过一些内容,使本教程成为一个精炼的教程,概述帮助您入门的关键概念和要点 今天,我写这篇文章是为了…

easy-rule规则引擎使用

简介 轻量级的规则引擎&#xff0c;易于学习的api 简单来说&#xff0c;规则引擎就是一个函数&#xff1a;yf(x1,x2,…,xn) 将业务代码和业务规则分离&#xff0c;解耦业务决策和业务代码的绑定关系 入门示例 依赖引入 <dependency><groupId>org.jeasy</grou…

页面<html>上多了一个滚动条,定位发现是<body>里面多了一个id为trans-tooltip的div

现象分析&#xff1a; 页面根标签html多了一个滚动条&#xff0c;发现body里面多了一个id为trans-tooltip的div&#xff0c;虽然width为0&#xff0c;height为0&#xff0c;但是其子元素还是有高度&#xff0c;占据了空间&#xff0c;最终导致了滚动条&#xff1b; 根本原因&…

专业渗透测试 Phpsploit-Framework(PSF)框架软件小白入门教程(十三)

本系列课程&#xff0c;将重点讲解Phpsploit-Framework框架软件的基础使用&#xff01; 本文章仅提供学习&#xff0c;切勿将其用于不法手段&#xff01; 接上一篇文章内容&#xff0c;讲述如何进行Phpsploit-Framework软件的基础使用和二次开发。 我们&#xff0c;继续讲一…

Java面试题--JVM大厂篇(1-10)

引言&#xff1a; 在这个信息时代&#xff0c;对于准备进入大厂工作的朋友们来说&#xff0c;对于JVM&#xff08;Java虚拟机&#xff09;的掌握是面试中的一项重要内容。下面是一些精选的JVM面试题&#xff0c;希望对大家能有所帮助。 正文&#xff1a; 1. JVM有哪几种垃圾收…

[CISCN2024]-PWN:gostack解析(go语言程序,syscall)

查看保护 ida比较复杂&#xff0c;建议动调配合静态分析程序运行 这里函数返回不用leave和ret&#xff0c;而是利用add rsp和ret&#xff0c;所以要动调查看到底要覆盖哪里。 完整exp&#xff1a; from pwn import* pprocess(./gostack) syscall0x4616c9 pop_rax0x40f984 po…

GB报文中的Cseq值的注意点

一、 问题现象 【问题现象】NVR使用GB接三方平台发现倍速回放时&#xff0c; 【现场拓扑】现场拓扑如下 &#xff08;1&#xff09; NVR侧使用家用宽带的方式&#xff0c;通过国标跨公网接入三方平台。 图1.1&#xff1a;网络拓扑 二、 抓包分析 INVITE sip:420000004013200…

OpenAI安全系统负责人:从头构建视频生成扩散模型

作者 | Lilian Weng OneFlow编译 翻译&#xff5c;杨婷、宛子琳、张雪聃 题图由SiliconFlow MaaS平台生成 过去几年&#xff0c;扩散模型&#xff08;Diffusion models&#xff09;在图像合成领域取得了显著成效。目前&#xff0c;研究界已开始尝试更具挑战性的任务——将该技术…

深度学习Day-18:ResNet50V2算法实战与解析

&#x1f368; 本文为&#xff1a;[&#x1f517;365天深度学习训练营] 中的学习记录博客 &#x1f356; 原作者&#xff1a;[K同学啊 | 接辅导、项目定制] 要求&#xff1a; 根据本文Tensorflow代码&#xff0c;编写对应的Pytorch代码了解ResNetV2与ResNetV的区别 一、 基础…

【实战JVM】-基础篇-03-Java内存结构

【实战JVM】-基础篇-03-Java内存结构 1 运行时数据区1.1 总览1.2 程序计数器1.2.1 是否会内存溢出 1.3 java虚拟机栈1.3.1 栈帧的组成1.3.1.1 局部变量表1.3.1.2 操作数栈1.3.1.3 帧数据1.3.1.3.1 动态链接1.3.1.3.2 方法出口1.3.1.3.3 异常表 1.3.2 是否会内存溢出1.3.3 设置虚…

【神经网络结构可视化】使用 Visualkeras 可视化 Keras / TensorFlow 神经网络结构

文章目录 Visualkeras介绍下载安装代码示例1、导入必要的库2、创建VGG16神经网络模型3、可视化神经网络结构4、完整代码5、使用教程 可视化自己创建的神经网络结构1、导入要的库2、创建自己的神经网络模型3、可视化神经网络结构图4、完整代码 Visualkeras介绍 Visualkeras是一…

C++代码错误解决1(函数模板)

1、代码如下 //示例函数模板的使用 #include <iostream> #include <string> using namespace std; template <typename T>//函数模板 T max(T a,T b) {return a>b?a:b; } int main() {int a,b;cout<<"input two integers to a&b:"…

【微机原理及接口技术】可编程并行接口芯片8255A

【微机原理及接口技术】可编程并行接口芯片8255A 文章目录 【微机原理及接口技术】可编程并行接口芯片8255A前言一、8255A的内部结构和引脚1.与外设接口&#xff08;数据端口&#xff09;2.与处理器接口 二、8255A的工作方式三、8255A的编程1. 写入方式控制字&#xff1a;控制字…

从0开始回顾ElasticSearch

1 elasticsearch概述 1.1 elasticsearch简介 官网: https://www.elastic.co/ ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎&#xff0c;基于RESTful web接口。Elasticsearch是用Java开发的&#xff0c;并作为Apache许可条款下的…

【动手学强化学习】第 6 章 Dyna-Q 算法知识点总结

【动手学强化学习】第 6 章 Dyna-Q 算法知识点总结 本章知识点基于模型的强化学习与无模型的强化学习方法简介无模型的强化学习方法基于模型的强化学习方法 强化学习算法的评价指标Dyna-Q算法Dyna-Q 算法的具体流程Dyna-Q 代码实践 本章知识点 基于模型的强化学习与无模型的强…

C++语言·list链表

其实现在在讲这些容器的时候&#xff0c;我们的重点已经不是它的接口都有什么&#xff0c;功能都是什么了&#xff0c;这些内容官网上都能查到&#xff0c;而且容器和容器之间接口的不同处很少&#xff0c;我在讲解的话也只是把官网上的东西截图下来复述一下。现在的重点其实都…

AtCoder Regular Contest 178 A~D

A.Good Permutation 2&#xff08;贪心&#xff09; 题意&#xff1a; 给你一个正整数 N N N和一个由 M M M个正整数 A ( A 1 , A 2 , … , A M ) A(A_{1},A_{2}, \dots,A_{M}) A(A1​,A2​,…,AM​)组成的序列。 在这里&#xff0c; A A A的所有元素都是介于 1 1 1和 N N …

网络编程-TCP

一、TCP的相关IP 1.1 SeverSocket 这是Socket类,对应到网卡,但是这个类只能给服务器使用. 1.2 Socket 对应到网卡,既可以给服务器使用,又可以给客户端使用. TCP是面向字节流的,传输的基本单位是字节. TCP是有连接的,和打电话一样,需要客户端拨号,服务器来听. 服务器的内核…