opcj1——mac下如何快速搭建Java开发环境
Posted 纵横千里,捭阖四方
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opcj1——mac下如何快速搭建Java开发环境相关的知识,希望对你有一定的参考价值。
这是我们OPCJ的第一篇,搭建基础的开发环境。我们的服务会不断增加新组件,我们这里先介绍如何快速搭建开发环境。一般来说Java程序员的电脑上总是会有一些已经配置好的idea、git、maven或者其他的,如果有的话,调整一下直接用就行了。我们这里重点看建立完整的环境该做什么,有些具体的细节不做过多解释,必要的话请读者再Google一下。
目录
1.基础环境搭建
1.1 mac下搭建手册
1.1.1 安装 docker
Docker是一个虚拟化容器技术,Docker基于镜像,可以秒级启动各种容器。每一种容器都是一个完整的运行环境,容器之间相互隔离。
1.1.2 docker安装mysql
先启动docker桌面端,然后执行如下命令:
sudo docker pull mysql:5.7
拉取最新的镜像
然后用该镜像创建mysql实例,使用下面的命令来创建:
sudo docker run -d -p 3306:3306 -v /usr/local/mysql/conf:/etc/mysql/conf.d -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7
这里对上面的参数做下简单的介绍,如果不想了解这一块直接复制上面的命令执行即可: 配置端口映射:
-p 3306:3306 --name mysql
将容器的3306端口映射到主机的3306端口
配置mysql数据卷挂载
1.-v /mydata/mysql/log:/var/log/mysql(日志文件挂载)
将容器中的日志文件夹挂载到主机对应的/var/log/mysql文件夹中
2.-v /mydata/mysql/data:/var/lib/mysql(数据文件挂载)
将容器中的数据文件夹挂载到主机对应的/var/lib/mysql文件夹中
3.-v /mydata/mysql/conf:/etc/mysql(配置文件挂载)
将容器的配置文件夹挂载到主机对应的/etc/mysql文件夹中
注(这里所提的主机指的是当前的linux主机)
配置用户
-e MYSQL_ROOT_PASSWORD=root
设置初始化root用户的密码
指定镜像资源
-d mysql:5.7
-d:以后台方式运行实例
mysql:5.7:指定用这个镜像来创建运行实例
创建成功后使用下面命令查看下创建好的mysql实例:
docker ps -a
然后使用MysqlBench、Navicat等连一下,测试一下状态,例如使用MysqlBench连接界面如下:
输入用户名root,密码123456,测试连接。不过这里如果输入指定的用户名mysql则连不上,后面看看咋回事。
1.1.3 docker安装redis
1.拉取redis镜像
docker pull redis
2.在本地某个位置创建以下内容
建议将以下内容放在一起,方便以后管理和查看
# 以/docker/redis为例
mkdir -p /docker/redis
mkdir -p /docker/redis/data
touch /docker/redis/redis.conf
touch /docker/redis/redis.bash
3.编辑配置文件
vim /docker/redis/redis.conf
内容为:
# Redis配置文件
# Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
daemonize no
# 指定Redis监听端口,默认端口为6379
port 6379
# 绑定的主机地址,不要绑定容器的本地127.0.0.1地址,因为这样就无法在容器外部访问
bind 0.0.0.0
#需要密码则打开
requirepass mima
# 持久化
appendonly yes
4.编辑启动脚本
vim /redis/redis.bash
基本内容如下,这里要注意将文件路径替换成你自己的路径,也就是下面的”:“号前面的要替换掉:
docker run -p 6379:6379 --name redis -v /docker/redis/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf
解释一下含义:
docker run redis # 从redis镜像运行容器
-p 6379:6379 # 映射本地6379端口到容器6379端口,前为本地端口
--name redis # 设置容器名称为redis,方便以后使用docker ps进行管理
-v /docker/redis/redis.conf:/etc/redis/redis.conf # 关联本地/docker/redis/redis.conf文件到容器中/etc/redis/redis.conf,同样,前为本地
-v /docker/redis/data:/data # 关联本地/docker/redis/data到容器内/data目录,此为存放redis数据的目录,为方便以后升级redis,而数据可以留存
-d # 后台启动,使用此方式启动,则redis.conf中daemonize必须设置为no,否则会无法启动
redis-server /etc/redis/redis.conf # 在容器内启动redis-server的命令,主要是为了加载配置
5.分配执行权限:
sudo chmod 777 /docker/redis/redis.bash
6.启动测试:
/docker/redis/redis.bash
# 查看是否已启动
docker ps
如果无法启动或者docker ps中无对应内容,将bash中命令复制出来,删除-d参数启动,查看报错信息
使用redis-cli或者rdm访问 localhost:6379
如需访问容器,可使用
docker exec -it redis bash
或直接使用redis-cli访问容器内redis
docker exec -it redis redis-cli [-a mima]
有点问题,能set,但是不能get。
1.2 后端开发环境配置
jdk1.8 和maven3.6
注意在setting.xml中添加阿里云代理
idea指定用自己的maven
1.3 前端开发环境配置
使用VScode,需要安装几个插件:
Vetur —— 语法高亮、智能感知、Emmet 等,包含格式化功能, Alt+Shift+F (格式化全文),Ctrl+K Ctrl+F(格式化选中代码,两个 Ctrl需要同时按着)
EsLint —— 语法纠错
Auto Close Tag —— 自动闭合 html/XML 标签
Auto Rename Tag —— 自动完成另一侧标签的同步修改
javascript(ES6) code snippets —— ES6 语法智能提示以及快速输入,除 js 外还支持.ts,.jsx,.tsx,.html,.vue,省去了配置其支持各种包含 js 代码文件的时间
HTML CSS Support —— 让 html 标签上写 class 智能提示当前项目所支持的样式
HTML Snippets —— html 快速自动补全
Open in browser —— 浏览器快速打开
Live Server —— 以内嵌服务器方式打开
Chinese (Simplified) Language Pack for Visual Studio Code —— 中文语言包
1.4 配置git
# 配置用户名
git config --global user.name "username" //(名字)
# 配置邮箱
git config --global user.email "username@email.com" //(注册账号时用的邮箱)
当然这里还可以配置无秘钥使用,具体方法不再赘述。
1.5 搭建开发工程框架
1.5.1基于git创建空工程
我们先在Gitee里创建一个空工程 地址如下:
https://gitee.com/projects/new
路径为opcj,然后做如下设置:
之后点击创建,完成之后,我们在gitee里复制工程的地址:
之后打开idea,选择“File”->"New"->"Project from version control",如下图所示
之后就可以创建出一个空的Java工程。之后我们的代码就都可以通过git来进行管理了。
1.5.2 创建module
接下来,我们创建好需要的几个module,我们的工程暂时分为优惠券coupon、成员member、订单order、产品product和货物ware五个服务。
首先在idea中选择“opcj”,然后右键->"New"->"Module",进入如下的界面:
上面不同版本的IDEA设置方法略有不同,我们当前使用的是idea2022.1.4版本,截图如上所示,这里有几个地方需要关注:
-
Name就是服务的名字,我们所有的服务都统一使用opcj-***的格式
-
Location这个一般默认不用管。
-
JDK,默认是JDK11,我们目前大部分服务使用JDK8就够了,如果版本太高可能导致后面有些jar用不了,所以这里改成JDK8。
-
Archetype,就是一个module的模板,在新版里是必选的,个人体验之后 ,感觉“maven-archetype-quickstart”就比较合适了,所以我们都基于这个来创建。
我们的其他的module为-优惠券coupon、成员member、订单order、产品product和货物ware五个服务。都创建好之后如下:
1.5.3 创建全局pom
在上面的过程中,各个module是独立的,我们创建一个父pom,我们随便选择一个复制到opcj下,里面的内容除了xml头部的信息,其他的都先去掉,然后补充几个module设置:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.opcj</groupId>
<artifactId>opcj</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>opcj</name>
<description>父pom文件</description>
<modules>
<module>opcj-ware</module>
<module>opcj-coupon</module>
<module>opcj-member</module>
<module>opcj-order</module>
<module>opcj-product</module>
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<log4j2-version>2.13.3</log4j2-version>
</properties>
</project>
完成之后,我们执行一下“mvn clean install”来编译一下,如果上述操作都正确,则可以正确执行。
1.5.4 修改.gitignore
在创建了上述模板之后 ,我们可以提交一下自己的代码了,但是有些文件没必要上传的,为此我们需要改一下工程下的.gitignore文件,如果你发现某个文件夹下有你不想要的文件,例如mvnw文件,则可以添加这样的命令:
**/mvnw
.idea目录下的文件也是不必上传的,我们可以添加如下的命令:
.idea
然后就可以用git commit 来提交了,如果发现注释掉的还在,可以先执行如下的命令来清理一下git的缓存:
git rm -r --cached .
然后再提交,提交完成之后我们到gitee上查看一下,如果看到如下内容,就说明我们的服务创建成功了:
1.6 初始化数据库
接下来我们来准备数据库的内容。
1.6.1 docker启动已经关闭的mysql问题
我们前面是通过docker来安装mysql的,此时还是要通过docker来启动,如果我们直接使用上面安装mysql时使用的启动命令来启动,可能会提示mysql已经被占用,此时我们可以先执行一下:
docker ps -a
,此时会列出我们本机的docker容器:
我们将mysql的这个删掉:
docker rm a56a5a4d7c9b
然后再启动:
docker run -it -p 3306:3306 -v /usr/local/mysql/conf:/etc/mysql/conf.d -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7
这样就可以了。之后我们可以通过mysql工具来测试一下。
后面我们将这些命令写一个启动脚本,这样就不用每次敲这么多命令了。
1.6.2 创建各个服务的数据表
接下来我们将基础数据库给创建好 ,我们做任何项目都是先明确需求,然后再做详细设计,之后设计数据表,最后才是开始写代码。这里我们现将所有的数据库文件都以sql的方式准备好了,放在工程目录的sql文件夹下。备份一下sql是一个非常好的习惯。
这些数据库和表如何设计的,我们后面单独分析,这里先将其全部创建出来再说。
以上是关于opcj1——mac下如何快速搭建Java开发环境的主要内容,如果未能解决你的问题,请参考以下文章