如何让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的版本旧一些的问题?
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac读写NTFS格式硬盘的神器2024免费版Tuxera NTFS for Mac

Mac读写NTFS格式硬盘的神器——Tuxera NTFS for Mac,让你的数据传输更加快捷!轻松解决Mac与Windows之间的数据传输难题,Tuxera NTFS for Mac是你不可错过的选择! 随着科技的不断发展,我们的生活中越来越多的设备需要进…

GIS设计与开发的学习笔记

目录 一、简答题 1.GeoDatabase数据模型结构类型与四种关系。 2.组件式GIS的基本思想是什么? 3.请简述创建空间书签的实现逻辑。 4.请问与地理要素编辑相关的类有哪些?(列举至少五个类) 5.利用ArcGIS Engine提供的栅格运算工…

gitLab server version 13.12.1 is not supported

拉代码的时候,报的这个错,实际上就是因为gitLab 版本太低了,这里不准备升级版本,打算继续使用账号密码来拉取代码 在idea已经安装的插件中,去掉gitlab插件,如下: 之后再拉取代码,就…

多进程数据库不适合作为hive的元数据库

简介 “今天发现一个比较奇怪的现象,因为博主不熟悉mysql,所以在安装hive的使用了postgresql作为hive的元数据库,在测试几个连接工具对hive进行链接,后面再测试的时候发现链接不上了,并且报错日志如下:” …

HTTPS证书是什么?多少钱?

HTTPS证书,其实就是SSL证书或者TLS证书,它就像是个网络保安,专门保护你的网站和用户浏览器之间的聊天内容不被坏人偷听或者改掉。当你给网站装上有效的HTTPS证书后,网址前面就会出现"https://",旁边可能还会…

【Linux第三课-基础开发工具的使用】yum、vim、gcc/g++编译器、gdb、Make/Makefile编写、进度条程序、git命令行简单操作

目录 yum - 软件包管理器快速认识yum快速使用yumyum搜索yum安装yum卸载 yum的周边 - yum的整个生态问题 vim快速介绍vimvim的模式命令模式插入模式低行模式 常见模式 -- 命令、低行命令模式 -- 光标的移动命令模式 -- 复制粘贴、剪贴、删除命令模式 -- 小写/大写替换模式命令模…

linux命令(二)

环境变量 在这里我说一下linux的环境变量 windows的环境变量大家应该都用的很熟吧,在这里说一下linux怎么查看以及设置环境变量 首先是查看环境变量 export这就会列出来所有的环境变量 既然能看到环境变量,那如何进行设置呢 首先先试试echo $PATH看看…

外包干了14天,技术退步明显。。。

先说一下自己的情况,本科生,2019年我通过校招踏入了成都一家软件公司,开始了我的职业生涯。那时的我,满怀热血和憧憬,期待着在这个行业中闯出一片天地。然而,随着时间的推移,我发现自己逐渐陷入…

数据结构试卷第九套

1.时间复杂度 2.树,森林,二叉树的转换 2.1树转二叉树 给所有的兄弟节点之间加一条连线;去线,只保留当前根节点与第一个叶子节点的连线,删除它与其他节点之间的连线;然后根据左孩子右兄弟进行调整&#xf…

C++第六弹---类与对象(三)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1、类的6个默认成员函数 2、构造函数 2.1、概念 2.2、特性 3、析构函数 3.1、概念 3.2、特性 3.3、调用顺序 总结 1、类的6个默认成员函数…

《由浅入深学习SAP财务》:第2章 总账模块 - 2.1 基础知识

2.1.1 总账模块的基本功能 总账模块(General Ledger,GL)是“总分类账会计模块”的中文简称,它是财务会计(FI)模块的一个子模块,它是一切会计事务处理的核心模块。 它的基本功能有会计科…

【Linux】Linux工具学习之gcc/g++

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 接上文,我们已经学习了 Linux 中的编辑器 vim 的相关使用方法,现在…

WordPress Plugin NotificationX插件 SQL注入漏洞复现(CVE-2024-1698)

0x01 产品简介 WordPress和WordPress plugin都是WordPress基金会的产品。WordPress是一套使用PHP语言开发的博客平台。该平台支持在PHP和MySQL的服务器上架设个人博客网站。 0x02 漏洞概述 WordPress plugin NotificationX是一个应用插件。2.8.2版本及之前 存在安全漏洞,该…

【RAG实践】基于 LlamaIndex 和Qwen1.5搭建基于本地知识库的问答机器人

什么是RAG LLM会产生误导性的 “幻觉”,依赖的信息可能过时,处理特定知识时效率不高,缺乏专业领域的深度洞察,同时在推理能力上也有所欠缺。 正是在这样的背景下,检索增强生成技术(Retrieval-Augmented G…

第八篇【传奇开心果系列】Python自动化办公库技术点案例示例:深度解读使用Python库清洗处理从PDF文件提取的文本

传奇开心果博文系列 系列博文目录Python自动化办公库技术点案例示例系列 博文目录前言一、Python清洗处理文本的常见步骤二、使用Python库去除非文本元素示例代码三、使用Python库去除格式化元素的示例代码四、使用Python库去除空白字符示例代码五、使用Python库合并段落和行示…

Oracle P6 Professional 配置连接数据库总结

前言 P6 Professional作为Oracle P6计划管理系统的重要套件之一,其操作出色,体检佳,是非常多的计划工程师跟踪项目进度计划的辅助工具。自20年前,Professional一直在不断的演变更新,以适应当前的新技术,从…

什么是可回收箱?可回收箱能回收哪些物品?具有哪些功能?

可回收箱是指专门用于收集居民或单位产生的、适宜回收和资源化利用的废弃物的容器。这些箱子通常会按照垃圾分类的标准进行设计,贴有明确标识,不同类型的可回收箱可能在开口大小、形状等方面有所不同,以适应不同类型可回收物的投放需求&#…

电源配小了,是不是容易烧?是的!

电源小的话会不会容易烧毁? 是的。 功率电压*电流。 随着功率增大,电压不变,电流增大,发热量增大,可能会烧毁。 今天给大家推荐一款650w的电脑电源,不过在推荐之前,首先要确认自己的电脑功耗…

制造业工厂为什么需要生产管理MES系统

一、制造业的生产管理需求与痛点 日趋激烈的市场竞争、客户对产品多样化要求越来越高,导致产品的生命周期缩短,企业需要通过智能制造实现降本、增效、提质,以提高企业的快速响应能力和核心竞争力。 二、生产管理的过程的痛点具体表现如下&am…

ES的集群节点发现故障排除指南(1)

本文是ES官方文档关于集群节点发现与互联互通的问题排查指南内容。 英文原文(官网) 集群节点发现是首要任务 集群互连,重中之重! 在大多数情况下,发现和选举过程会迅速完成,并且主节点会长时间保持当选状…