IntelliJ IDEA和MAVEN基本操作:项目和缓存存储到非C盘

为了将 IntelliJ IDEA 的所有项目和缓存存储到 C 盘以外的地方,以下是你需要调整的设置和步骤:


1. 更改项目默认存储位置

  • 打开 IntelliJ IDEA。
  • 点击顶部菜单的 File > Settings (Windows)或 IntelliJ IDEA > Preferences (Mac)。
  • 导航到 Appearance & Behavior > System Settings
  • 找到 Default project directory,将默认项目位置改为你希望的非 C 盘路径。

2. 更改 IDE 缓存目录

IDEA 的缓存目录(例如 .idea 配置文件、索引数据等)默认存储在用户目录下**(如我是C:\Users\Acer\AppData\Roaming\JetBrains\IntelliJIdea2024.3)**

查找当前缓存目录的方法

打开 IntelliJ IDEA。
点击顶部菜单 Help > Diagnostic Tools > Show Log in Explorer。
弹出的文件管理器路径即为 IDEA 缓存路径所在的文件夹,你可以向上一级目录确认缓存存储的根目录。

  • 找到 IntelliJ IDEA 的配置文件。

    • Windows : C:\Users\<用户名>\.IdeaIC<版本号>\idea.properties
    • Mac : ~/Library/Preferences/IdeaIC<版本号>/idea.properties
    • Linux : ~/.IdeaIC<版本号>/config/idea.properties
  • 如果 idea.properties 文件不存在,可以手动创建。


  • 注意左下角,找到你了!
    此外,C:\Users\Acer\AppData\Local\JetBrains\IntelliJIdea2024.3\tmp\JetBrainsGateway 下的 config 文件夹仅是临时文件的一部分,它并不是主配置文件的位置 。IDEA 的主配置文件通常存储在 AppData\Roaming 或类似的路径中,而不是 tmp 文件夹。

  • 在这个 idea.properties 的文件中添加以下内容来更改路径:

    复制代码
    # 系统缓存路径
    idea.system.path=D:/JetBrains/IntelliJ/system
    
    # 配置文件路径
    idea.config.path=D:/JetBrains/IntelliJ/config
    
    # 插件存储路径
    idea.plugins.path=D:/JetBrains/IntelliJ/plugins

    将路径改为你希望的存储位置。

  • 重启 IntelliJ IDEA 配置完成后,重启 IDEA,让新的配置生效。

  • 打开 IDEA 的菜单 Help > Diagnostic Tools > Show Log in Explorer

  • 查看弹出的文件路径是否指向你新设置的路径。

  • 检查新的缓存目录(如 D:/JetBrains/IntelliJ/system)是否开始生成索引和临时文件。


3. 更改 Maven 缓存路径

3. 验证修改

4. Maven 包装器的路径

1. 修改 settings.xml 文件

在你的 settings.xml 文件中找到 <localRepository> 标签(如果没有,可以添加)。此标签用于指定 Maven 本地仓库的路径,默认是 ${user.home}/.m2/repository

<localRepository> 设置为你希望的路径,例如 D:\Programming\apache-maven-3.9.9\maven-cache

复制代码
  <settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
      <!-- 指定 Maven 本地仓库路径 -->
      <localRepository>D:\Programming\maven-repository</localRepository>

      <!-- 其他配置保持不变 -->
  </settings>

2. 保存配置文件

将修改后的 settings.xml 文件保存到以下全部路径:

  • 用户级别配置:%USERPROFILE%\.m2\settings.xml(例如我是C:\Users\Acer\.m2\settings.xml

    注意!!!必须把自己修改后的配置文件复制到这里,因为这里优先读取的,也就是说这里这个目录下必须要有,且仅有一个配置文件,它就是D:\Programming\apache-maven-3.9.9\conf\settings.xml的复制版

    如果忘记了这一步,所有的修改将仍然会无效。

  • 全局配置:Maven 安装目录/conf/settings.xml(例如:D:\Programming\apache-maven-3.9.9\conf\settings.xml

  • 清理已有的缓存目录(默认路径在 C:\Users\<用户名>\.m2\repository.m2

  • 运行以下命令,验证 Maven 是否正常使用新的路径存储依赖:

    复制代码
    mvn clean install
  • 检查 D:\Programming\maven-repository 目录,确认依赖是否存储在该路径下。

  • Maven 和 Maven Wrapper 的区别:
    mvn 是全局的 Maven 命令,依赖于系统中已安装的 Maven。
    mvnw 是项目本地的包装器命令,用于项目级别管理 Maven 版本。

为了彻底避免 Maven 使用默认的 C:\Users\<用户名>\.m2 目录,可以设置 MAVEN_USER_HOME 环境变量,让 Maven 包括其包装器在内都使用新的路径。

设置步骤:
  • 打开环境变量设置:

    • 右键单击 "此电脑" -> "属性" -> "高级系统设置" -> "环境变量"。
  • 添加新的系统变量:

    • 变量名:MAVEN_USER_HOME
    • 变量值:D:\Programming\apache-maven-3.9.9\maven-cache
    • 如果只是临时:

    在这个特定项目下的.mvn/wrapper/maven-wrapper.properties 文件中的 distributionUrl 路径。将其修改为自定义缓存目录,例如:

    复制代码
    distributionUrl=file:///D:/Programming/apache-maven-3.9.9/maven-cache/apache-maven-3.9.9-bin.zip

    distributionUrl:

    • 表示 Maven 包装器会从指定的 URL 下载 Maven 分发包(通常是一个 ZIP 文件)。
    • 示例中配置的 URL 是 Maven 官方仓库,指向 apache-maven-3.8.4-bin.zip
    • 下载的分发包会存储在项目目录的 .mvn/wrapper/dists 文件夹下,具体路径与系统有关。
      • 在 Windows 上通常是 C:\Users\<你的用户名>\.m2\wrapper\dists
      • 在 Linux 或 macOS 上通常是 ~/.m2/wrapper/dists
  • wrapperUrl:

    • 指定 Maven 包装器 jar 文件的下载地址。

    • 这个 jar 文件是 Maven Wrapper 的核心逻辑文件,通常会下载到 .mvn/wrapper/ 目录下。

      关于包装器,至今我仍然无解!!放弃了
      参考
      https://zhuanlan.zhihu.com/p/427984150
      关于maven包装器的一些使用心得-CSDN博客


      问题确认

      你已经正确设置了系统环境变量 %MAVEN_USER_HOME%D:\Programming\apache-maven-3.9.9\maven-cache

    • 修改了 settings.xml 中的 <localRepository> 指向同一目录。

    • 但是,Maven 包装器仍然在 C:\Users\Acer\.m2\wrapper 下载缓存文件,而非使用指定的路径。

    • Maven 包装器的缓存路径与依赖库缓存路径 不是同一个概念 。即使设置了 %MAVEN_USER_HOME%<localRepository>,包装器默认仍会使用 C:\Users\<用户名>\.m2\wrapper 作为缓存路径,除非明确通过配置覆盖其行为。


      正确解决方案

      为了彻底转移所有缓存(包括依赖和包装器缓存)到 D:\Programming\apache-maven-3.9.9\maven-cache,需要以下步骤:


      1. 配置 MAVEN_OPTS 强制指定缓存路径

      添加 JVM 参数覆盖默认路径,包括包装器缓存和依赖库路径。

    • 打开系统环境变量设置:

      • 右键点击 "此电脑" -> 选择 "属性" -> 点击 "高级系统设置" -> 点击 "环境变量"。
    • 添加或修改环境变量:

      • 变量名MAVEN_OPTS

      • 变量值

        复制代码
        -Dmaven.repo.local=D:/Programming/apache-maven-3.9.9/maven-cache -Dmaven.wrapper.cache.dir=D:/Programming/apache-maven-3.9.9/maven-cache/wrapper
    • 此配置中:

    • maven.repo.local:强制指定依赖库的缓存路径。

    • maven.wrapper.cache.dir:强制指定包装器缓存路径。


    2. 修改项目中的 Maven 包装器配置

    确保 .mvn/wrapper/maven-wrapper.properties 文件中的 distributionUrl 指向正确的路径。

    • 打开 .mvn/wrapper/maven-wrapper.properties

    • 修改以下内容:

      复制代码
      distributionUrl=file:///D:/Programming/apache-maven-3.9.9/maven-cache/apache-maven-3.8.4-bin.zip
    • 如果本地没有 apache-maven-3.8.4-bin.zip,手动下载该文件到指定路径。


    3. 验证配置是否生效

    执行以下命令,检查缓存路径是否正确:

    • 检查依赖库缓存路径:

      复制代码
      mvn dependency:resolve

      查看是否在 D:\Programming\apache-maven-3.9.9\maven-cache 生成新的缓存文件夹。

    • 检查包装器缓存路径:

      复制代码
      mvnw -version

      检查是否在 D:\Programming\apache-maven-3.9.9\maven-cache\wrapper 下载缓存文件。


    4. 删除 C 盘旧缓存目录

    确认新路径生效后,手动删除C:\Users\Acer\.m2\repository C:\Users\Acer\.m2\wrapper以释放空间:

    • 最终,所有缓存(包括依赖库和包装器缓存)都会存储在 D:\Programming\apache-maven-3.9.9\maven-cache 下:

    • 依赖库存储路径示例:

      复制代码
      D:\Programming\apache-maven-3.9.9\maven-cache\org\apache\commons\commons-lang3\3.12.0\commons-lang3-3.12.0.jar
    • 包装器缓存路径示例:

      复制代码
      D:\Programming\apache-maven-3.9.9\maven-cache\wrapper\apache-maven-3.8.4-bin.zip
相关推荐
Aurora_NeAr1 分钟前
深入理解Java虚拟机-垃圾收集器与内存分配策略
后端
向阳25610 分钟前
SpringBoot+vue前后端分离整合sa-token(无cookie登录态 & 详细的登录流程)
java·vue.js·spring boot·后端·sa-token·springboot·登录流程
你的人类朋友24 分钟前
JS严格模式,启动!
javascript·后端·node.js
Aurora_NeAr25 分钟前
深入理解Java虚拟机-Java内存区域与内存溢出异常
后端
XiaoLeisj27 分钟前
【MyBatis】深入解析 MyBatis XML 开发:增删改查操作和方法命名规范、@Param 重命名参数、XML 返回自增主键方法
xml·java·数据库·spring boot·sql·intellij-idea·mybatis
风象南28 分钟前
SpringBoot实现数据库读写分离的3种方案
java·spring boot·后端
lzj201428 分钟前
DataPermissionInterceptor源码解读
后端
振鹏Dong34 分钟前
策略模式——本质是通过Context类来作为中心控制单元,对不同的策略进行调度分配。
java·策略模式
ChinaRainbowSea43 分钟前
3. RabbitMQ 的(Hello World) 和 RabbitMQ 的(Work Queues)工作队列
java·分布式·后端·rabbitmq·ruby·java-rabbitmq
雾月5544 分钟前
LeetCode 914 卡牌分组
java·开发语言·算法·leetcode·职场和发展