IDEA中Maven的一些常用操作指南

 更新时间:2024年06月07日 09:43:56   作者:Lvan的前端笔记  
intellij idea是一款很流行好用的集成开发环境软件,maven是使用很广泛的构建工具,java开发者日常少不了与这两种工具打交道,下面这篇文章主要给大家介绍了关于IDEA中Maven的一些常用操作指南,需要的朋友可以参考下

背景

当我们使用 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 compile 和 mvn 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,其他了解一下就行

到此这篇关于IDEA中Maven的一些常用操作的文章就介绍到这了,更多相关IDEA Maven常用操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅谈Java编程之if-else的优化技巧总结

    浅谈Java编程之if-else的优化技巧总结

    说实话,其实我很讨厌在代码里大量使用if-else,一是因为该类代码执行方式属于面向过程的,二嘛,则是会显得代码过于冗余.这篇笔记,主要记录一些自己在工作实践当中针对if-else的优化心得,将会不定期地长期更新,需要的朋友可以参考下
    2021-06-06
  • 解决SpringBoot下Redis序列化乱码的问题

    解决SpringBoot下Redis序列化乱码的问题

    这篇文章主要介绍了解决SpringBoot下Redis序列化乱码的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • 如何解决java.util.zip.ZipFile解压后被java占用问题

    如何解决java.util.zip.ZipFile解压后被java占用问题

    这篇文章主要介绍了如何解决java.util.zip.ZipFile解压后被java占用问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • SpringBoot MainApplication类文件的位置详解

    SpringBoot MainApplication类文件的位置详解

    这篇文章主要介绍了SpringBoot MainApplication类文件的位置详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Springboot详解实现食品仓库管理系统流程

    Springboot详解实现食品仓库管理系统流程

    这是一个使用Springboot开发的食品仓库管理系统,是为商家提供商品货物进销存的信息化管理系统,具有一个仓库管理系统该有的所有功能,感兴趣的朋友快来看看吧
    2022-06-06
  • springboot项目快速搭建的方法步骤

    springboot项目快速搭建的方法步骤

    这篇文章主要介绍了springboot项目快速搭建的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 详解SpringBoot中自定义和配置拦截器的方法

    详解SpringBoot中自定义和配置拦截器的方法

    今天这篇文章来介绍一下拦截器在SpringBoot中的如何自定义及如何配置的,拦截器的具体作用和应用场景,感兴趣的小伙伴可以了解一下
    2022-05-05
  • Mybatis 如何传入字符串参数,分割并遍历

    Mybatis 如何传入字符串参数,分割并遍历

    这篇文章主要介绍了Mybatis 如何传入字符串参数,分割并遍历,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • spring boot整合quartz实现多个定时任务的方法

    spring boot整合quartz实现多个定时任务的方法

    这篇文章主要介绍了spring boot整合quartz实现多个定时任务的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • Java面试重点中的重点之Elasticsearch核心原理

    Java面试重点中的重点之Elasticsearch核心原理

    ElasticSearch是一个基于Lucene的搜索引擎,是用Java语言开发的,能够达到实时搜索,稳定,可靠,快速,安装使用方便,作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎,是最受欢迎的企业搜索引擎
    2022-01-01

最新评论