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
相关推荐
浩宇软件开发3 分钟前
Android开发,实现一个简约又好看的登录页
android·java·android studio·android开发
brzhang3 分钟前
告别『上线裸奔』!一文带你配齐生产级 Web 应用的 10 大核心组件
前端·后端·架构
shepherd1114 分钟前
Kafka生产环境实战经验深度总结,让你少走弯路
后端·面试·kafka
南客先生10 分钟前
多级缓存架构设计与实践经验
java·面试·多级缓存·缓存架构
anqi2712 分钟前
如何在 IntelliJ IDEA 中编写 Speak 程序
java·大数据·开发语言·spark·intellij-idea
袋鱼不重17 分钟前
Cursor 最简易上手体验:谷歌浏览器插件开发3s搞定!
前端·后端·cursor
m0_7401546718 分钟前
maven相关概念深入介绍
java·maven
嘻嘻哈哈开森19 分钟前
Agent 系统技术分享
后端
用户40993225021220 分钟前
异步IO与Tortoise-ORM的数据库
后端·ai编程·trae
会有猫25 分钟前
LabelStudio使用阿里云OSS教程
后端