Mac搭建Java环境【环境搭建】

Mac搭建Java环境【环境搭建】

1 安装Java SDK

官网地址:https://www.oracle.com/java/technologies/downloads/archive/

下载dmg,双击之后无脑安装即可。

bash 复制代码
# 进入 JDK 安装目录
cd /Library/Java/JavaVirtualMachines

# 查看文件
ls

# 输入
cd ~

# 打开环境变量配置文件
vim .bash_profile

# 复制如下内容,JAVA_HOME 替换为自己目录
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH:.
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.

# 配置文件立即生效
source .bash_profile

# 查看 JAVA_HOME 目录
echo $JAVA_HOME

# 查看 JDK 版本信息
java -version

2 安装Maven

官网地址:https://maven.apache.org/download.cgi

  • 选择对应版本,下载bin.tar.gz
bash 复制代码
# 修改环境变量
vim .bash_profile

# 复制如下内容,MAVEN_HOME 替换为自己目录
export MAVEN_HOME=/Users/ziyi2/maven/apache-maven-3.9.0
export PATH=$MAVEN_HOME/bin:$PATH:.
# 配置文件立即生效
source .bash_profile

# 查看 MAVEN_HOME 目录
echo $MAVEN_HOME

# 创建maven仓库目录
mkdir -p $MAVEN_HOME/maven_repository/

# 查看 maven 版本信息
mvn -v

配置maven阿里云镜像加速:

bash 复制代码
# 进入maven的conf目录,在setting.xml中添加阿里云镜像仓库。
vim $MAVEN_HOME/conf/settings.xml

# 找到< mirrors >标签,在标签里添加:
# 配置阿里镜像加速
 <mirror>
   <id>alimaven</id>
   <name>aliyun maven</name>
   <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
   <mirrorOf>central</mirrorOf>       
 </mirror>

3 安装IDE

以IDEA为例。

官网地址:https://www.jetbrains.com/zh-cn/idea/download/other.html

下载之后,无脑双击安装即可。

完成之后,创建新项目,修改Maven配置到本地。

安装插件:

3.1 插件推荐

插件推荐:

  1. GenerateAllSetter
  2. Lombok
  3. HTTPClient
  4. Git、GitHub、Gitee、GitToolBox
  5. SpringBoot Initializr and Assistant
  6. Translation
  7. MybatisX
  8. JPA Buddy
  9. Alibaba Java Code Guidelines
  10. Raindow Brackets
  11. HighlightBracketPair
  12. Maven helper
  13. Database Tools and SQL
  14. Alibaba Java Coding Guidelines(编码规范)
  15. MyBatisCodeHelper(直接查看SQL)
  16. 通义灵码(AI)

3.2 常用快捷键

下面是windows对应快捷键,Mac版修改对应按键即可,如:

格式化:ctrl + alt +L=》command+option+L

【1】调用方法的时候,如果有明确的返回最值,我们用变量接收==》快捷键:Ctrl+Alt+V

【2】格式化==》ctrl + alt +L

【3】Alt + Insert 可根据自己的需要进行选择(包含构造器)==》多个方法可以用shift选择(点击首和尾)

【4】查看源码,选中,之后ctrl + B

【5】选中之后Alt + enter对异常进行处理

【6】ctrl + Y 删除当前行

【7】var => 快速生成结果

【8】alt(alt + shift + insert) =>批量编辑

【9】ctrl + shift + 减号(所有代码全部折叠)/ 加号(全部展开)

【10】ctrl + 减号/加号(光标所在位置的代码折叠/展开)

【11】ctrl + r替换

【12】ctrl+alt+T:surround with

【13】ctrl+G,输入行号:快速定位到某一行

【14】ctrl+alt+V,选中代码(str.length),快速生成变量

【15】ctrl+alt+M,选中代码,抽取方法

【16】ctrl+alt+左方向:快速回到上一次点击位置

3.3 tips

①鼠标滚动缩放代码

settins - editor - general - MouseControl(change font size...)

②文件模板

settings - file and code templates - Files(添加class模板)

class模板:

java 复制代码
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#parse("File Header.java")
/**
 * @description TODO
 * @author zhouYi
 * @date ${DATE} ${TIME}
 * @version 
 */
public class ${NAME} {
}

interface模板:

java 复制代码
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#parse("File Header.java")

/**
 * @description TODO
 * @author ${USER}
 * @date ${DATE} ${TIME}
 * @version 
 */
public interface ${NAME} {
}
③自动删除无用包
④开启自动生成UUID

设置之后,在实现了Serializable的类上,通过alt+enter(windows版,mac上更换对应按键即可)即可自动生成UID

⑤时间转换配置LocalDateTimeConfig类
java 复制代码
@Configuration
public class LocalDateTimeConfig {

    /*
     * 序列化内容
     *   LocalDateTime -> String
     * 服务端返回给客户端内容
     * */
    @Bean
    public LocalDateTimeSerializer localDateTimeSerializer() {
        return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }

    /*
     * 反序列化内容
     *   String -> LocalDateTime
     * 客户端传入服务端数据
     * */
    @Bean
    public LocalDateTimeDeserializer localDateTimeDeserializer() {
        return new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }


    // 配置
    @Bean
    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
        return builder -> {
            builder.serializerByType(LocalDateTime.class, localDateTimeSerializer());
            builder.deserializerByType(LocalDateTime.class, localDateTimeDeserializer());
        };
    }

}
相关推荐
TechWJ6 分钟前
PyPTO编程范式深度解读:让NPU开发像写Python一样简单
开发语言·python·cann·pypto
qq_124987075312 分钟前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
Coder_Boy_18 分钟前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
Mr_sun.19 分钟前
Day06——权限认证-项目集成
java
瑶山21 分钟前
Spring Cloud微服务搭建四、集成RocketMQ消息队列
java·spring cloud·微服务·rocketmq·dashboard
abluckyboy28 分钟前
Java 实现求 n 的 n^n 次方的最后一位数字
java·python·算法
lly20240629 分钟前
C++ 文件和流
开发语言
2301_8187320630 分钟前
前端调用控制层接口,进不去,报错415,类型不匹配
java·spring boot·spring·tomcat·intellij-idea
m0_7066532335 分钟前
分布式系统安全通信
开发语言·c++·算法
2501_9419820543 分钟前
深度对比:Java、Go、Python 实现企微外部群推送,哪个效率更高?
java·golang·企业微信