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

news2024/9/20 1:17:07

一、背景

有的时候,我们希望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.coloradmin.cn/o/1533298.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C#,图论与图算法,有向图(Directed Graph)的环(Cycle)的普通判断算法与源代码

1 检查该图是否包含循环 给定一个有向图,检查该图是否包含循环。如果给定的图形至少包含一个循环,则函数应返回true,否则返回false。 方法:深度优先遍历可用于检测图中的循环。连接图的DFS生成树。只有当图中存在后缘时,图中才存在循环。后边是从节点到自身(自循环)或…

#鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行

3 月 19 日,#鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行。 现场,深圳市南山区人民政府副区长李志娜发布《2024 年南山区支持鸿蒙原生应用发展首批政策措施清单》,从加强鸿蒙原生应用供给能力、推动鸿蒙原生应用产业集聚、完善鸿蒙原生…

Linux集群

前言: 环境准备:虚拟机,xshell,mysql,tomcat,jdk,centos 虚拟机安装centos可以参考博客:虚拟机安装centos 一,安装jdk 打开xshell 点击cftp,如果没有安装…

通过nginx+xray服务搭建及本地配置

一、xray服务配置 下载:https://github.com/XTLS/Xray-core 进入下载界面 这里我选择的是Xray-linux-64.zip 将文件解压到 /usr/local/xray 编辑配置文件/usr/local/xray/config.json uuid可以在v2ray客服端自动生成,也可以在UUID v4 生成器 - KKT…

Oracle数据库冷备份(实例)

冷备份 1、 select file#,name,bytes/1024/1024 mb from v$datafile; 2 、缩减 便于copy alter database datafile 2 resize 100m;show parameter spfilecreate undo tablespace u2 datafile /u01oracle/oradata/qq/u2.dbf size 2m autoextend on; //建新的 alter system…

《2023 IT行业项目管理调查报告》新鲜出炉!助力IT行业持续稳步发展

又一年!2024年1月,禅道联合多方合作伙伴,发起了2023年IT行业项目管理调查问卷。经过2个多月的问卷收集与报告分析,《2023 IT行业项目管理调查报告》发布啦! 我们希望通过这次调查,深入了解不同公司和个人在…

你知道什么是工业物联网吗?——青创智通

工业物联网解决方案-工业IOT-青创智通 工业物联网,简称IIoT(Industrial Internet of Things),是指将物联网技术应用于工业领域,实现工业设备、系统和人之间的互联互通,以提高工业生产效率、降低运营成本并…

Vue.js+SpringBoot开发智能教学资源库系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课程资源模块2.4 课程作业模块2.5 课程评价模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 课程档案表3.2.2 课程资源表3.2.3 课程作业表3.2.4 课程评价表 四、系统展示五、核心代…

关于Windows中的屏幕亮度的有关知识,看这篇文章就差不多了

屏幕亮度序言 你可能需要定期更改屏幕亮度。当外面很亮的时候,你会想把它调亮,这样你就能看到。当你在一个黑暗的房间里时,你会想要它变暗,这样它不会伤害你的眼睛。降低屏幕亮度也将有助于节省电源并延长笔记本电脑的电池寿命。 除了手动更改屏幕亮度外,你还可以让Wind…

机器学习 - 预测训练模型

接着上篇博客机器学习-训练模型做进一步说明。 There are three things to make predictions (also called performing inference) with a PyTorch model: Set the model in evaluation mode (model.eval())Make the predictions using the inference mode context manager (…

操作系统:malloc与堆区内存管理

malloc是函数而不是系统调用,他的底层是同调调用brk和mmap这两个系统调用实现功能的,具体选择brk还是mmap要看申请的空间大小以及malloc中的阈值(一般是128kb) 注意申请的空间只有使用才会触发缺页中断映射到物理内存 不理解的话先…

武汉星起航:卓越品质领航亚马逊跨境电商,助力中国卖家扬帆全球

作为业内实力雄厚的亚马逊跨境电商孵化服务商,武汉星起航电子商务有限公司以其卓越的品质和服务,为中国卖家提供了进军国际市场的强大支持,赢得了业界的广泛赞誉。 武汉星起航电子商务有限公司自2020年成立以来,便致力于连接中国…

Linux服务器导出CPU和内存使用情况

Linux服务器默认存储一个月的CPU和内存记录,所在目录:/var/log/sa/,如下图所示 在此用sar命令来执行 sar是一个比较全面的性能监控工具,包括cpu、内存、磁盘和网络等信息,并且该命令会每10分钟自动保存一次硬件资源使用…

分巧克力---第八届蓝桥杯省赛c++A,B组

题目描述如下 对于满足某个条件的单调最值问题,我们应该下意识考虑二分,我们分析本题的条件,要找一个边长最大值使得我们所有的巧克力切出该边长的正方形的数量大于等于人数,由于我们的边长一定在1到1e5之间,我们要在这…

基于QGraphicsView的图像显示控件,支持放大、缩小、鼠标拖动

原链接 前言 这是一个Qt平台的基于QGraphicsView类的图像显示控件,支持输入QPixmap、QImage、opencv的从cv::Mat类。 实现平台:Windows 10 x64 Qt 6.2.3 MSVC 2019 opencv 4.5 先来看演示视频 控件类实现 ImageViewer.h文件 #ifndef IMAGEVIEWER…

【SpringMVC】知识汇总

SpringMVC 短暂回来,有时间就会更新博客 文章目录 SpringMVC前言一、第一章 SpingMVC概述二、SpringMVC常用注解1. Controller注解2. RequestMapping注解3. ResponseBody注解4. RequestParam5. EnableWebMvc注解介绍6. RequestBody注解介绍7. RequestBody与RequestP…

(19)C#自动添加微信好友(可批量申请)--微信UI自动化(.Net)

往期知识回顾 (1)C#开启探索微信自动化之路-微信UI自动化 (2)C#创建微信窗体自动化实例-微信UI自动化 (3)C#针对系统热键管理-微信UI自动化 (4)C#采集微信通讯录和联系人-微信UI自动化 (5)C#实现针对微信窗体鼠标静默点击-微信UI自动化 (6)C#搜索微信通讯录联系人-微信UI…

JavaMySQL高级一(下)

目录 1.常用函数 1.字符串函数 2.时间日期函数 3.聚合函数 4.数学函数 2.分布查询 3.子查询基础 1.简单子查询 1.常用函数 在程序开发过程中,除了简单的数据查询,还有基于已数据进行数据的统计分析计算等需求。因此,在SQL中将一…

zookeeper底层细节

zk 临时节点和watch机制实现注册中心自动注册和发现,数据都在内存,nio 多线程模型; cp注重一致性,数据不一致时集群不可用 事务请求处理方式 1.all事务由唯一服务器处理 2.将客户端事务请求转成proposal分发follower 3.等待半…

windows访问远程服务器上容器的几种直接方式

远程服务器 host上有一个docker container,如何通过 client 直接登陆 container 呢? container 使用 host 的网络,即使用了 --networkhost先配置 container的 ssdh(/etc/ssh/sshd_config),相关参数设置 po…