java:IDEA中Maven常用操作

文章目录

    • 背景
    • 1、Reload All Maven Projects:
    • 2、Generate Sources and Update Folders For All Projects:
    • 3、Download Sources and/or Documentation:
    • 4、Add Maven Projects
    • 5、Run Maven Build
    • 6、Execute Maven Goal
    • 7、Toggle Offline Mode
    • 8、Toggle 'Skip Tests' Mode
    • 9、Collapse All
    • 10、Analyze Dependencies...
    • 11、Show Diagram...
    • 12、Settings...
    • 13、Profiles
    • 14、Lifecycle
    • 15、Plugins
    • 16、Dependencies
    • 总结

背景

当我们使用 IDEA 开发基于 Maven 的项目的时候,会发现右侧有一个 Maven,点开会有一些菜单,今天来介绍一下这些菜单的意思。

在这里插入图片描述

1、Reload All Maven Projects:

场景: 当你对项目的pom.xml文件进行了更改,比如添加、删除或修改了依赖,或者进行了其他Maven配置的更改时,可能需要重新加载项目以应用这些变更。
用途: 使用这个功能可以重新导入和解析Maven项目,确保项目的配置和依赖被正确加载。这对于确保项目与pom.xml文件的同步非常重要。

2、Generate Sources and Update Folders For All Projects:

  • 场景: 当项目中有生成的源代码(如通过Annotation Processors生成的代码)或者在IDE中进行了一些更改需要同步到实际文件系统时,可以使用这个功能。
  • 用途: 生成源代码并更新文件夹是为了确保在IDE中进行的任何更改都被同步到实际的源代码文件中。这对于确保构建过程中包含最新的生成代码非常重要。

举例说明:
当使用Annotation Processors或其他自动生成代码的工具时,可能会生成一些额外的源代码,并且这些生成的代码不直接存储在源代码目录中,而是在编译过程中生成到特定的目录中。

举个例子,假设你使用了Lombok库,它是一个Java库,可以通过注解来简化Java代码的编写。Lombok在编译时会生成一些getter和setter方法,以及其他一些常见的方法。这些生成的代码默认情况下会放在编译输出目录(例如target/classes)的某个位置。

如果你在IDE中使用Lombok,并在代码中使用了Lombok的注解,但在实际源代码中看不到生成的方法,那么可能是因为IDE没有同步生成的代码到源代码目录。

在这种情况下,你可以使用"Generate Sources and Update Folders For All Projects"功能来强制IDE将生成的代码同步到源代码目录。这样,你就可以在IDE中看到并编辑由Lombok生成的代码,从而更容易理解和调试你的代码。

总体而言,这个功能通常在你使用一些自动生成代码的工具,并且想要在IDE中看到或编辑这些生成的代码时非常有用。

生成的源代码(比如通过Annotation Processors或Lombok生成的代码)可能会存储在编译输出目录(例如,target/generated-sources)的子目录中。这些生成的源代码不会直接放在源代码目录中。
因此,在使用"Generate Sources and Update Folders For All Projects"功能时,它会负责将这些生成的源代码同步到源代码目录,使得在IDE中可以看到并编辑这些生成的代码。这样,你就能够在IDE中更方便地查看和管理由工具生成的代码,而不必直接查看编译输出目录。

3、Download Sources and/or Documentation:

  • 场景: 当你依赖的库(JAR文件)没有包含源代码或文档,并且你希望在IDE中查看这些源代码或文档时,可以使用这个功能。
  • 用途: 下载源代码和/或文档是为了在IDE中查看和调试库的源代码,或者阅读其文档。这对于理解库的内部实现或使用库的最佳实践非常有帮助。

4、Add Maven Projects

添加 Maven 项目,点击后选择文件夹

5、Run Maven Build

执行选中的命令
在这里插入图片描述
当然你也可以双击命令直接执行

6、Execute Maven Goal

执行 mvn 命令或自定义的命令,点击后有如下效果
在这里插入图片描述

7、Toggle Offline Mode

切换离线模式,即关闭和远程仓库的链接,即版本管理工具不能提交到远程

8、Toggle ‘Skip Tests’ Mode

跳过 maven 生命周期的测试环节

9、Collapse All

收起下面展开的树形

10、Analyze Dependencies…

在这里插入图片描述

11、Show Diagram…

在这里插入图片描述

12、Settings…

在这里插入图片描述
在这里插入图片描述

13、Profiles

Native Maven插件是一个用于构建本地(native)项目的Maven插件,通常用于构建使用C、C++等语言编写的本地应用程序。

native Profile:

  • 当激活了native Profile 时,可能会触发使用 Native Maven 插件构建本地(native)项目的配置。
  • 这个Profile通常包括一些特定于本地构建的配置,比如本地编译器的设置、本地库的依赖等。

nativeTest Profile:

  • 当激活了nativeTest Profile 时,可能会触发一些与本地测试相关的配置。
  • 这个Profile可能包括本地测试所需的特殊配置,确保测试可以正确地运行在本地构建的环境中。

一般用不到

14、Lifecycle

这个一个生命周期,比如执行 mvn test 会执行 mvn compile,执行 mvn package 会执行 mvn compilemvn test

clean 阶段:

  • 目的: 清理项目,删除之前构建生成的文件。
  • 命令: mvn clean

validate 阶段:

  • 目的: 验证项目是否正确且所有必要的信息可用。
  • 命令: mvn validate

compile 阶段:

  • 目的: 编译项目的源代码。
  • 命令: mvn compile

test 阶段:

  • 目的: 运行项目的单元测试。
  • 命令: mvn test

package 阶段:

  • 目的: 将编译后的代码打包成可发布的格式,例如 JAR 或 WAR。
  • 命令: mvn package

install 阶段:

  • 目的: 将项目打包并安装到本地 Maven 仓库,使其可以被其他项目引用。
  • 命令: mvn install

deploy 阶段:

  • 目的: 将项目的构建结果复制到远程 Maven 仓库,以便其他开发者或项目可以访问。
  • 命令: mvn deploy

15、Plugins

这里就是一个一个具体的插件命令了。

16、Dependencies

在IntelliJ IDEA中,External Libraries和Dependencies两个部分都涉及到项目的依赖,但它们有一些区别。

简而言之
External Libraries 关注项目运行时所使用的库
而 Dependencies 关注项目构建时所需的依赖项。

在 Maven 项目中,Dependencies 中的内容通常会包含在 External Libraries 中

总结

最常用的是1和14,其他了解一下就行

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

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

相关文章

相机标定张正友、opencv和halcon对比(1)

本文将从基本标定开始,结合实际工作经验,分析张正友、opencv和halcon三者相机标定的深层原理与不同之处,内容比较多,如果出现错误请指正。 相机光学模型 我们使用的镜头都是由多组镜片组成,它实际上是一种厚透镜模型…

易基因:人精子H3K4me3 ChIP-seq和DNA甲基化WGBS揭示与生育和发育相关重叠区域

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 目前,六分之一的夫妇患有不孕不育,其中多达一半的病例由男性因素引起,在过去的40年中,精子数量下降了50%。尽管导致精子质量和数量下降的因…

Javase | Java常用类 (不断补充中...)

目录: 1.Object类2.String类3.StringBuffer类4.Math类5.Random类6.包装类(不断补充中...) 1.Object类 Object类是Java语言中的所有类的超类,即所有类的根。它中描述的所有方法,所有类都可以使用。 equals( ) : 指示其他某个对象与此对象“是否相等” (比…

【C/C++笔试练习】this指针的概念、初始化列表、const对象调用、构造和析构函数、继承和组合、重载和多态、虚函数的定义、计算日期到天数转换、幸运的袋子

文章目录 C/C笔试练习选择部分(1)this指针的概念(2)初始化列表(3)const对象调用(4)构造和析构函数(5)继承和组合(6)重载和多态&#x…

力扣 --- 三数之和

目录 题目描述: 思路描述: 代码: 提交结果: 官方代码: 官方提交结果: 题目描述: 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k…

implementation和api的区别是什么

前言: 平时在做开发的时候,各种依赖三方库。一般就是在build.gradle中添加如下代码: dependencies {implementation com.google.android.material:material:1.9.0 } 这里随便举个例子。 今天在开发的时候,遇到如下错误&#xf…

day32_Git

今日内容 零、 复习昨日 零、 复习昨日 一、引言 在单人开发过程中,需要进行版本管理,以利于开发进度的控制。 在多人开发过程中,不仅需要版本管理,还需要进行多人协同控制。 版本控制(VS) SVN GIT 二、介绍 Git是一个开源的…

vue3+vite搭建cesium项目

1.创建项目 cnpm create vite 2.安装依赖 npm i cesium vite-plugin-cesium vite -D 3.在vite.config.js里进行配置 import { defineConfig } from vite import vue from vitejs/plugin-vue import cesium from vite-plugin-cesium; export default defineConfig({plugins…

vue项目运行时,报错:ValidationError: webpack Dev Server Invalid Options

在运行vue项目中,遇到报错:ValidationError: webpack Dev Server Invalid Options,如下图截图: 主要由于vue.config.js配置文件错误导致的,具体定位到proxy配置代理不能为空,导致运行项目报错,需…

Apache Flink(二):数据架构演变

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹…

CSS:calc() 函数 / 动态计算长度值 / 不同场景使用

一、理解 css calc() 函数 CSS calc() 函数是一个用于计算 CSS 属性值的函数。它可以在 CSS 属性值中使用数学表达式,从而实现动态计算属性值的效果。calc() 函数可以使用加减乘除四种基本数学运算符来计算属性值,还可以使用括号来改变优先级。 二、ca…

堆在排序中的应用

堆排序 1、堆排序原理 堆排序是利用到了堆这种数据结构,我们首先回顾一下二叉堆的特性: 最大堆的堆顶是整个堆中的最大元素。最小堆的堆顶是整个堆中的最小元素。 以最大堆为例,如果删除一个最大堆的堆顶(并不是完全删除&…

【MATLAB】RLMD分解+FFT+HHT组合算法

有意向获取代码,请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 RLMD分解FFTHHT组合算法是一种强大的分析方法,结合了局部均值分解(LMD)、快速傅里叶变换(FFT)和希尔伯特-黄变换(H…

Wireshark之Intro, HTTP, DNS

源码地址👇 moranzcw/Computer-Networking-A-Top-Down-Approach-NOTES: 《计算机网络-自顶向下方法(原书第6版)》编程作业,Wireshark实验文档的翻译和解答。 (github.com) 目录 🌼Introduce 🎧前置 🎧过…

基于YOLOv8深度学习的PCB板缺陷检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推荐--…

基于three.js生成动态波浪背景效果

文章目录 前言一、安装three二、新建waves.js文件三、引入waves.js文件比查看效果如有启发,可点赞收藏哟~ 前言 基于three.js生成动态波浪背景效果 一、安装three npm i three -S二、新建waves.js文件 注意geometry.setAttribute和geometry.addAttribute和在不同…

【腾讯地图】【微信小程序】地图选点

【相关文章】 【腾讯地图】【微信小程序】地图选点 【腾讯地图】【微信小程序】路线规划 【腾讯地图】【微信小程序】城市记录(基于地图选点入门版) 【效果展示】 【官方文档】 微信小程序插件-地图选点插件 【完善流程】 当前操作和官方文档操作有部…

Attacking Fake News Detectors via Manipulating News Social Engagement(2023 WWW)

Attacking Fake News Detectors via Manipulating News Social Engagement----《通过操纵新闻社交互动来攻击假新闻检测器》 摘要 在年轻一代中,获取新闻的主要来源之一是社交媒体。随着新闻在各种社交媒体平台上日益流行,虚假信息和毫无根据的言论的传…

【端到端可微2】链式法则,论文:Introduction to Gradient Descent and Backpropagation Algorithm

论文:Introduction to Gradient Descent and Backpropagation Algorithm 文章目录 0 前言1 链式法则定义作用 2 单神经元的正向传播forward propagation定义z 激活函数 3 损失函数定义 4 损失函数对权重张量的偏导数定义z对w求偏导l对z求偏导 5 多个神经元的正向传播…

企业软件的分类|app小程序网站定制开发

企业软件的分类|app小程序网站定制开发 企业软件是指为满足企业管理和运营需求而设计和开发的一类软件,它通常用于支持企业的各项业务活动和流程。根据其功能和应用领域的不同,可以将企业软件分为以下几类。 1. 企业资源计划(ERP&#xff09…