如何让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.mzph.cn/news/752418.shtml

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

相关文章

论文阅读——RSGPT

RSGPT: A Remote Sensing Vision Language Model and Benchmark 贡献:构建了一个高质量的遥感图像描述数据集(RSICap)和一个名为RSIEval的基准评估数据集,并在新创建的RSICap数据集上开发了基于微调InstructBLIP的遥感生成预训练…

Python学习01 python开发的准备工作 1.Python解释器的下载 2.Pycharm集成开发环境的安装

0.按照步骤,快速进行python的开发准备工作 1. Python解释器的下载 下载地址 https://www.python.org/ 选择对应你的系统的安装包 2.记得勾选这里将python加入你的路径中 3.有如下四个程序表明安装成功 4.点击上图中的第二个程序打开窗口检查解释器能否正常工作 输…

uniapp修改头像,选择图片

一、页面效果 二、手机上的效果 使用过的实例&#xff1a; 手机上就会显示类似如下&#xff1a; 三、代码 <view class"cleaner-top" click"chooseImg"><view class"cleaner-avatar"><image :src"imgArr" mode"…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:FlowItem)

瀑布流组件的子组件&#xff0c;用来展示瀑布流具体item。 说明&#xff1a; 该组件从API Version 9开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。仅支持作为Waterflow组件的子组件使用。 子组件 支持单个子组件。 接口 FlowItem() 使…

挑战杯 机器视觉目标检测 - opencv 深度学习

文章目录 0 前言2 目标检测概念3 目标分类、定位、检测示例4 传统目标检测5 两类目标检测算法5.1 相关研究5.1.1 选择性搜索5.1.2 OverFeat 5.2 基于区域提名的方法5.2.1 R-CNN5.2.2 SPP-net5.2.3 Fast R-CNN 5.3 端到端的方法YOLOSSD 6 人体检测结果7 最后 0 前言 &#x1f5…

常用芯片学习——DS3231M芯片

DS3231M RTC实时时钟 芯片介绍 DS3231M是一款低成本、极其精确的 I2C 实时时钟 &#xff08;RTC&#xff09;。该设备集成了电池输入&#xff0c;并在设备主电源中断时保持准确的计时。微型电子机械系统 &#xff08;MEMS&#xff09; 谐振器的集成提高了器件的长期精度&…

Tomcat Seeion 集群

部署&#xff1a;nginx服务器&#xff1a;11-11&#xff1b;tomcat1:11-3; tomcat2:11-6 nginx服务器11-11做搭建&#xff1a; [rootmcb-11 ~]# systemctl stop firewalld [rootmcb-11 ~]# setenforce 0 [rootmcb-11 ~]# yum install epel-release.noarch -y [rootmcb…

关于 NXP PCA85073A 实时时钟读取数据时出现 IIC 传输失败的原因解析和解决方法

一、前言 对使用 I2C 传输的 RTC 外设 PCA85073&#xff0c;在 I2C 传输过程中若有复位信号输入&#xff0c;则有概率出现 I2C 死锁的状态&#xff0c;即 SCL为高&#xff0c;SDA一直为低的现象。 二、I2C 基本协议 在分析问题出现的原因之前&#xff0c;我…

前端基础篇-深入了解 JavaScript(JSON、BOM、DOM 和事件监听)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 JS - JSON 2.0 JS - BOM 2.1 Window 浏览器窗口对象 2.2 Location 地址栏对象 3.0 JS - DOM 3.1 获取 HTML 元素对象 3.2 调用 Element 对象的属性、方法 4.0 事件…

威联通(QNAP) TS-466C NAS 开箱评测,4盘位NAS,N6005,存储服务器

威联通(QNAP) TS-466C 四盘位NAS (Network Attached Storage:网络附属存储) 开箱评测 之前用的TS-551经过几轮系统升级后明显感觉性能跟不上了&#xff0c;变卡了&#xff0c;所以升级一下&#xff0c;换了TS-466C。 威联通迁移NAS还挺方便的&#xff0c;只有将原先NAS里的硬…

Spring Boot项目怎么从Nacos注册中心上获取其他服务列表信息?

一、前言 在spring boot项目开发过程中&#xff0c;为了进行微服务之间的调用&#xff0c;我们一般会使用注册中心&#xff0c;比如Nacos。假设我们有一个业务需求&#xff0c;应用A需要从Nacos注册中心上获取服务信息进行分析&#xff0c;需要怎么实现呢&#xff1f; 二、开…

数据结构(四)——串的定义和基本操作

四、串 4.1 串的定义和实现 4.1.2 串的定义 串&#xff1a;即字符串&#xff08;String&#xff09;是由零个或多个字符组成的有限序列。例&#xff1a;T‘iPhone 11 Pro Max?’子串&#xff1a;串中任意个连续的字符组成的子序列。 Eg&#xff1a;’iPhon…

蓝桥杯每日一题:血色先锋队

今天浅浅复习巩固一下bfs 答案&#xff1a; #include<iostream> #include<algorithm> #include<cstring>using namespace std; typedef pair<int,int> PII;const int N510; int n,m,a,b; int dist[N][N]; PII q[N*N]; int hh0,tt-1;int dx[]{1,0,-1,…

【医学图像处理】ECAT和HRRT格式转nii格式【超简单】

之前从ADNI上下载PET数据的时候发现有许多数据的格式不是DICOM的而是ECAT或者是HRRT格式&#xff0c;这对原本就少的PET数据是血上加霜啊。 当然只使用DICOM格式的数据也会得到不少的数据&#xff0c;我一开始也是只使用DICOM格式的样本&#xff0c;后来为了得到更多的数据&a…

【LabVIEW FPGA入门】浮点数类型支持

如今&#xff0c;使用浮点运算来设计嵌入式系统的需求变得越来越普遍。随着 FPGA 因其固有的大规模并行性而在浮点性能方面继续超越微处理器&#xff0c;这种情况正在加剧。线性代数和数字信号处理 (DSP) 等高级算法可以受益于浮点数据类型的高动态范围精度。LabVIEW FPGA 通过…

力扣hot100:33. 搜索旋转排序数组(二分的理解)

33.搜索旋转排序数组 ​ 这是一个非常有趣的问题&#xff0c;如果不要求使用O(logn)应该没人会想到吧。。 方法一&#xff1a; 极致的分类讨论。旋转排序数组&#xff0c;无非就是右边的增区间的数小于左边的增区间的数&#xff0c;然后依次排序。因此我们只需要分三类讨论即可…

CMAKE_CUDA_ARCHITECTURES set to ‘native’多版本与版本号矛盾问题,报错

CMAKE_CUDA_ARCHITECTURES set to ‘native’多版本与版本号矛盾问题&#xff0c;报错 1. 报错提醒如下图2. 原因本地安装多个cuda版本导致native寻找到多个版本&#xff0c;导致报错3. 具体配置需要根据你的显卡型号来确认 1. 报错提醒如下图 2. 原因本地安装多个cuda版本导致…

【prometheus】k8s集群部署prometheus server(文末送书)

目录 一、概述 1.1 prometheus简介 1.2 prometheus架构图 1.3测试环境 二、k8s集群中部署prometheus server 2.1创建sa账号和数据目录 2.2安装prometheus 2.2.1创建configmap存储卷存放prometheus配置信息 2.2.2 通过deployment部署prometheus 2.2.3prometheus pod创…

ConsiStory:Training-Free的主体一致性生成

Overview 一、总览二、PPT详解 ConsiStory 一、总览 题目&#xff1a; Training-Free Consistent Text-to-Image Generation 机构&#xff1a;NVIDIA, Tel-Aviv University 论文&#xff1a;https://arxiv.org/pdf/2402.03286.pdf 代码&#xff1a;https://consistory-paper.g…

zookeeper快速入门三:zookeeper的基本操作

在zookeeper的bin目录下&#xff0c;输入./zkServer.sh start和./zkCli.sh启动服务端和客户端&#xff0c;然后我们就可以进行zookeeper的基本操作了。如果是windows&#xff0c;请参考前面章节zookeeper快速入门一&#xff1a;zookeeper安装与启动 目录 一、节点的增删改查 …