如何让intellij idea支持一个目录多个springtboot或maven项目

一、背景

有的时候,我们希望intellij idea 能像 eclipse 一样有workspace的概念,能在一个workspace目录里面引入多个项目,如:

我们有项目a、项目b,现在的项目几乎都是springboot项目(即maven项目),所以就假设他们都是springboot项目,idea设计的时候一般是单独打开a和b,我们现在希望有类似于 “workspace” 的概念,把a和b都纳入其中。

注意: 需要注意的是,a和b可以是无关联的。正常情况下我们会创建一个目录作为parent,然后有a和b模块,不过我们这里讨论的不一样,a和b可以是无关联的、不同业务的、甚至不同系统的项目。

二、怎么做?(会在末尾列出一些网上其他文章不可行的)

步骤1:

创建一个文件夹f (叫什么名随意),将a和b都剪切到 f,创建这个目录的目的只是为了让idea打开这个目录,重新创建只是为了目录干净一些。

如果之前已经用idea打开过a和b,建议将a和b下的idea项目配置文件删掉以免产生干扰

即删掉 .idea 目录以及 *.iml,注意*.iml不一定存在,新版的idea不产生*.iml文件了,新版所有idea的项目配置文件都在.idea目录里头

步骤2

用idea打开上面创建的f,这时候idea其实会检测,如果检测到你有maven的scripts(其实就是pom.xml之类的maven结构),会提示是否加载a和b为maven项目,选择是即可。

如果你错过了,也没关系,我们只要找到项目的 pom.xml,右键它并选择加载为maven项目即可(大概的菜单名不记得了,差不多这个意思),最笨的方法一个个模块这么操作即可。

操作完毕完第一个后其实你就能看到右侧有 “Maven” 的了(不知道叫什么,叫视图还是叫窗口还是叫window),这时你就开始轻车熟路了。

步骤3

各种依赖的下载,点击右侧的Maven的视图,刷新一下,让依赖下载一下。

根据自身项目的特殊性,有些甚至需要install一下a或(和)b。

这个步骤没有统一的万金油的操作方法,总而言之就是让你的代码能编译通过,能启动起来,至少写个Test类和helloworld的main方法能运行起来。

有的时候有些目录死活识别不了为soruce/resource/test/Gernerated soruce目录/exclude,你就手工mark directory as一下。

  • src/main/java 通常是java代码目录
  • src/main/resources 通常是java代码的资源目录(配置文件)
  • src/test/java 通常是测试目录
  • src/test/resources 通常是测试用到的资源配置文件的目录
  • target 通常你看到的就是橙色的目录,其实就是excluded的目录

  • target/generated-soruces 工具或插件生成的java源码 (是否生成在这个路径通常是配置决定,这路径是我遇到的情况)
  • target/generated-test-sources 同上,只不过生成的是测试的源码文件

有时候确实需要手工标记为 Generated Sources Root,我遇到过这种情况。

这目录通常是有些源码文件是由工具插件生成的,java maven里专门有一些插件是可以根据配置文件的定义生成java类(*.java文件),通常是用于生成一些接口的出入参的entity实体类,以方便给其他系统调用。

三、没法解决的一些问题

上面的方式其实也可以看到其实跟Eclipse的有些东西是有区别的

  • 搜索问题

    一搜就搜整个 “workspace”,要单独搜a或者b项目,要求只搜a里的东西只能改用搜a目录的方式,无法通过将b暂时标记为excluded来达到排除b的目的。(eclipse里是可以将不想关的先关闭的,idea里没这个功能)。当然idea可以搜全局了,这也打破了要一个个单独在a和b里头搜东西

  • External Libary 的问题

    左边的依赖列表其实是混合了a和b的,你无法知道这个依赖是a用的还是b用的还是a和b都有用。当然,你可以从右边的Maven视图里单独查看a或b都有哪些依赖。

四、一个目录里既有前端代码又有后端代码,这是本文可以解决的另外的问题

上面的情况是a和b都是java的项目。假设某个目录my-project下面有 front-end/back-end/auto-test目录,其中front-end是前端react或者vue的,back-end是java springboot的,auto-test是java的(selenium+chrome driver+BDD/cucumber)

因为idea的旗舰版是支持编辑各种语言的,比如java/react/vue/Python等,用idea旗舰版将my-project导入,这样子就会比较方便全栈工程师一遍改前端代码一边改后端并且还兼任测试的工作写自动化测试。

怎么做?其实跟上面的方法是一样,只是上面一个目录下全是java的,现在既有java也有前端代码。

五、网上其他文章不可行的

可能是因为版本还是什么原因,不可行,
https://blog.csdn.net/weixin_30409927/article/details/98039806
比如这篇文章提到在idea左下角可以打开 Maven Projects,反正我的idea是没有这个菜单,也许是博客里用的idea的版本旧一些的问题?
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习300问】35、什么是随机森林?

〇、让我们准备一些训练数据 idx0x1x2x3x4y04.34.94.14.75.5013.96.15.95.55.9022.74.84.15.05.6036.64.44.53.95.9146.52.94.74.66.1152.76.74.25.34.81 表格中的x0到x4一共有5个特征,y是目标值只有0,1两个值说明是一个二分类问题。 关于决策树相关的前置知识&am…

Android分区存储到底是怎么回事

文章目录 一、Android存储结构二、什么是分区存储?三、私有目录和公有目录三、存储权限和分区存储有什么关系?四、我们应该该怎么做适配?4.1、利用File进行操作4.2、使用MediaStore操作数据库 一、Android存储结构 Android存储分为内部存储和…

STM32系列——F103C8T6 控制SG90舵机(HAL库)

文章目录 一、舵机控制原理二、.CubeMX配置配置RCC、SYS、时钟树配置RCC配置SYS配置时钟树配置定时器产生PWM波形 Keil5代码接线图及效果如果您发现文章有错误请与我留言,感谢 一、舵机控制原理 舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平…

前端框架的发展史介绍框架特点

目录 1.前端框架的发展历程 2.官网、优缺点、使用场景 2.1 jQuery 2.2 AngularJS 2.3 React 2.4 Vue.js 2.5 Angular 1.前端框架的发展历程 jQuery(2006年):jQuery是一个非常流行的JavaScript库,用于简化DOM操作和事件处理…

HTML5:七天学会基础动画网页13

看完前面很多人可能还不是很明白0%-100%那到底是怎么回事,到底该怎么用,这里我们做一个普遍的练习——心跳动画 想让心❤跳起来,我们先分析一波,这个心怎么写,我们先写一个正方形,再令一个圆形前移: 再来一…

如何快速搭建物联网工业云平台

随着物联网技术的快速发展,物联网工业云平台已经成为推动工业领域数字化转型的重要引擎。合沃作为专业的物联网云服务提供商,致力于为企业提供高效、可靠的物联网工业云平台解决方案。本文将深入探讨物联网工业云平台的功能、解决行业痛点的能力以及如何…

使用Laravel安装器创建项目

使用Laravel安装器创建项目,使用Laravel安装器创建前先确保你的机器上已经下载了Laravel安装程序,可以通过终端界面查询是否下载了Laravel安装器,在终端中输入Laravel 查询,如下图所示则已下载Laravel安装程序,&#x…

OPENCV(0-1之0.2)

OPENCV-0.2 学习安排图像基础像素访问和修改像素值 色彩空间转换RGB到灰度的转换RGB到HSV的转换 图像操作裁剪缩放旋转和翻转 图像滤波平滑和模糊图像边缘检测 图像变换仿射变换透视变换 总结 官方文档 学习安排 图像基础 像素:了解像素的概念,包括像素…

【原创】java+swing+mysql二手车交易管理系统

前言: 本文主要介绍了二手车交易管理设计与实现。首先,通过市场需求,我们确定了二手车的功能,通常的二手车交易系统都是B/S架构,然而我们今天要用javaswing去开发一个C/S架构的二手车交易管理系统,主要功能…

从政府工作报告中的IT热词统计探计算机行业发展(一)数字+:21次

政府工作报告作为政府工作的全面总结和未来规划,不仅反映了国家整体的发展态势,也为各行各业提供了发展的指引和参考。随着信息技术的快速发展,计算机行业已经成为推动经济社会发展的重要引擎之一。因此,从政府工作报告中探寻计算…

Tomcat内存马

Tomcat内存马 前言 描述Servlet3.0后允许动态注册组件 这一技术的实现有赖于官方对Servlet3.0的升级,Servlet在3.0版本之后能够支持动态注册组件。 而Tomcat直到7.x才支持Servlet3.0,因此通过动态添加恶意组件注入内存马的方式适合Tomcat7.x及以上。…

蓝桥杯小白赛第 7 场 3.奇偶排序(sort排序 + 双数组)

思路:在第一次看到这道题的时候我第一想法是用冒泡,但好像我的水平还不允许我写出来。我又读了遍题目发现它的数据很小,我就寻思着把它分成奇偶两部分。应该怎么分呢? 当然在读入的时候把这个问题解决就最好了。正好它的数据范围…

MySQL-JDBC初识

文章目录 前言一、数据库编程的必备条件二、 Java的数据库编程:JDBC三、JDBC工作原理四、JDBC使用4.1 JDBC开发案例4.2 JDBC使用步骤总结 五、JDBC常用接口和类5.1 JDBC API5.2 数据库连接Connection5.3 Statement对象5.4 ResultSet对象 前言 为最近学习的JDBC知识…

Github: Github actions 自动化工作原理与多workflow创建

Github actions 1 )概述 Github Actions 是Github官方推出的 CI/CD 解决方案 https://docs.githu.com/en/actions 优点 自动发布流程可减少发布过程中手动操作成本,大幅提升ci/cd效率,快速实现项目发布上线 缺点 存在较高的技术门槛需要利用…

/usr/local/bin/docker-compose: line 1: Not: command not found

安装docker-compose 检查是否安装成功 docker-compose --version 出错 /usr/local/bin/docker-compose: line 1: Not: command not found 检查下载连接是否正确 官网 https://dockerdocs.cn/compose/install/ 根据官网上连接下载 发现下载不了 在版本前加个V 就可以解决 版…

【C++】类和对象终章

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 一、初始化列表1.1 初始化列表的形式1.2 初始化列表的注意事项 二、explicit关键…

一个页面请求从在浏览器中输入网址到页面最终呈现

前言-与正文无关 生活远不止眼前的苦劳与奔波,它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界中,我们往往容易陷入工作的漩涡,忘记了停下脚步,感受周围的世界。让我们一起提醒自己,要适时放慢脚步…

校园闲置物品租售系统|基于springboot框架+ Mysql+Java+B/S架构的校园闲置物品租售系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 管理员功能登录前台功能效果图 ​编辑 用户功能模块 商品购买管理 卖家功能模块 商品…

QML 布局管理器之GridLayout

一.QML GridLayout介绍 在QML中,GridLayout是一种用于布局元素的容器。它允许您以网格形式组织和排列元素。要使用rowspan、columnspan、layoutFillWidth和rowSpacing属性,您可以将一个元素跨越多行和多列,并填充整个宽度,同时设置…

【正则表达式】正则表达式里使用变量

码 const shuai No My Name Is ShuaiGe.match(new RegExp(shuai, gi)); //↑↑↑↑↑↑↑↑ //等同于 //↓↓↓↓↓↓↓↓ /No/gi.test(My Name Is ShuaiGe)用作领域 搜索的字符动态改变,例如↓模糊搜索例: 一个文本宽,输入文本模糊搜索用…