后端新人关于java的项目管理工具的疑惑?

刚开始学后端,有几个问题想要请教下大家
1 是使用maven,还是IDEA的提供的intellij?不使用另一个的原因是?
2 如果是使用maven的话,是使用IDEA自带的maven,还是自己额外下载?看的一些网上教程都是让自己单独下载maven,说IDEA自带的maven不方便配置。
谢谢

阅读 2.8k
avatarAI BotBETA
  1. Maven与IDEA的内置Maven:
* **Maven**:Maven是一个强大的项目管理工具,它主要用于Java项目的构建、依赖管理和项目信息管理。使用Maven,你可以轻松地管理项目的依赖关系,自动化构建过程,并创建一致的构建结果。
* **IDEA的内置Maven**:大多数IDE(如IntelliJ IDEA)都内置了Maven支持,这意味着你不需要单独安装Maven。IDEA的内置Maven可以简化一些基本的构建和依赖管理任务。
* **选择哪个?**:
    + 如果你只是开始一个新的项目,并且想要一个简单、集成的解决方案,那么使用IDEA的内置Maven可能就足够了。
    + 然而,如果你计划在一个大型团队中工作,或者想要更细粒度的控制构建和依赖管理过程,那么安装并配置独立的Maven可能是一个更好的选择。
  1. 使用IDEA自带的Maven还是单独下载Maven
* **IDEA自带的Maven**:如上所述,IDEA等IDE通常内置了Maven支持,这使得在项目开始阶段更为方便,因为你不需要额外安装任何软件。
* **单独下载Maven**:尽管IDEA内置了Maven,但有些开发者选择单独下载和配置Maven。这主要是为了获得更大的灵活性和控制力。例如,你可以更容易地管理Maven的版本,或者在不同的项目之间共享同一个Maven安装。
* **教程建议**:一些教程可能建议单独下载Maven,因为这样可以确保你使用的是最新版本的Maven,并且可以更容易地配置它以满足特定的项目需求。此外,有些高级配置或集成可能需要直接操作Maven的安装。

结论

  • 对于初学者和简单的项目,使用IDEA的内置Maven可能就足够了。
  • 对于更复杂的项目或大型团队,考虑单独下载和配置Maven,以获得更大的灵活性和控制力。

希望这可以帮助你做出决定!

11 个回答
  1. 建议认真理清maven,IDE,还有jdk之间的关系,这玩意展开太多了就不说了
  2. 不仅用idea自带的maven,甚至jdk都用idea下载,自带解千愁
  1. IDEAIDEMavenGradle 才是主流项目管理工具,而目前来说,Maven 的使用面应该更广泛。
  2. 如果需要定制化 Maven 的一些配置,最好是单独下载。

  1.首先,maven是项目管理工具, IntelliJ IDEA是常用的一个集成编程环境也就是IDE,这俩没有任何关联,常常和maven拿来做比较的是gradle,新手刚入门乃至工作都推荐用maven,因为gradle的学习曲线比较陡峭(当然它也相对灵活,语法比较简洁),从事实出发maven的使用率肯定是高于gradle的,稳定不需要折腾(gradle经常给人吐槽兼容性问题),有很多插件(肯定比gradle多),虽然一些知名项目比如springboot官方的构建工具现在已经变成gradle了,但是我觉得看起来麻烦一点的xml配置语法要比摸不着头脑的groovy脚本好(个人意见),当然了构建工具你用的顺手就好了,这玩意和你的编程代码水平没什么关系。。
  2.都可以,IDEA自带就省去你自己去找安装的麻烦,自己装的同样可以在IDEA里配置,反正配置文件也可以复用,如果你不是有需求需要某个特定的maven版本,其实使用IDEA自带的完全够用,另外提醒一下maven在3.8.1版本之后,在settings.xml中通过配置mirror禁用了不安全的http链接,默认情况下必须使用https的仓库地址,如果你的IDEA版本太新自带的默认maven版本比较高要注意一下,必要时自己下载一个3.6.x的就可以了

我用gradle

新手上路,请多包涵

你说的IntelliJ 是指:IntelliJ IDEA Ultimate这个软件吧?

  1. 如果是这样的话IntelliJ它是编译器,它的作用的辅助你编写code。
  2. maven是项目管理工具帮你管理项目依赖之类的,使用idea编译它也是依靠maven,这两个之间是独立的东西
  3. 不使用IntelliJ自带的maven是因为之前的IntelliJ版本自带的maven是有问题的,在你某些时候出现一些莫名的bug,你可能日常,测试等会感知不到,一旦你真正开始编码的时候,使用到某些工具的时候会出现错误,虽然不知道新版本是否修复这些问题,但这些小事何必去赌呢?

先说结论,项目管理用maven,尽可能不要使用 intellij ,另外 maven 使用 idea 自带的maven即可;
为什么?
你得先知道为什么有了maven这种工具,甚至后来的编程语言工具包安装时都自带了依赖管理等功能(类似于 cango 之于 rust , go module 之于 golang)

  1. maven是什么呢?它是一个Java项目管理工具,它的主要功能是(默认按照约定,src/main 是主代码 src/test 是测试代码目录,等等等等)帮助Java软件项目管理项目依赖、开发人员、文档等等(文档参考:apache commons-io 的 依赖说明文档,这个文档就是maven直接生成的)
  2. maven 可以帮助你快速解决版本依赖的依赖树,好比下图
    image.png
    如果我想升级 org.junit.jupiter:junit-jupiter:jar: 从 5.10.1 升级到 6.10.1(假设有),但是这个包依赖的 opentest4j 版本需要升级到 2.3(假设) 才可以,没有maven时,只是单纯的把 junit 的包换掉是不够的,需要一个一个依赖的排查,也正是因为这个问题(虽然仍然解决不了依赖地狱的问题),才产生了maven,依赖自动管理,通过一个一个的pom.xml 把所有相关的依赖组织起来。
  3. 默认情况下你只需要使用一个maven,但万一你是JDK版本的环境呢?虽然哈,maven 3.9以上需要使用 JDK8 以上,覆盖范围非常广,但是万一呢,不过如果公司产品使用的范围在 JDK8 以上,其实你反而不用关心你的 maven 版本,至少我目前遇到的配置只是需要关心 pom.xml 以及 ~/.m2/setting.xml 这两个文件了。

另外,在学习maven时不可避免的有 gradle 的介绍,虽然我用的也是 gradle ,但是对于初学者,建议学习了解完 maven 、 ant 以及 groovy 之后再去了解 gradle 也都来得及,毕竟 gradle = maven + ant + groovy。

老哥,你这个问题有点混乱。
Maven的主要作用是项目管理和构建。
Idea是个编辑器,主要是方便用来编写代码的,只不过它也提供了界面化的方式来使用Maven的命令。

这么说吧,先使用Idea编写代码,然后可以通过Idea提供的界面对代码进行编译打包、依赖包管理等。而编译打包、依赖包管理都是Maven来实现的,Idea只是在Maven的基础上提供了一个图形界面。

Maven建议还是单独下载,一方面是可以自定义Maven的位置,方便找到修改配置文件,后续过程中可能还需要查看本地仓库。二来,通过自己下载Maven,然后Idea配置,也能更方便你理解Maven和Idea之间的关系。

新手上路,请多包涵

缕下思路:

你的意思是,用自己下载的maven好还是idea自动帮你下载配置的maven好。
            用自己下载的jdk好还是idea自动帮你下载配置的jdk好。
大概是这两个问题。

也好说:

自己下载配置开始麻烦,但是之后转移、寻找都比较方便,
idea配置迅速不会出现乱码,path等问题,但是转移寻找需要在setting中查看路径,相对麻烦。

个人习惯:

自己下载配置

Java项目管理工具有很多,其中一些常用的包括:

  1. Maven:它是一个基于Java的构建工具,可以帮助开发者快速构建、管理和发布Java项目。Maven使用项目对象模型(POM)来描述项目的构建过程,包括编译、测试、打包等各个阶段,并提供了丰富的插件和依赖机制,实现对Java项目的自动化管理。
  2. Gradle:Gradle是另一个重要的Java自动化构建工具,它采用了一种基于Groovy或Kotlin的DSL(领域特定语言),使得项目构建更加灵活和强大。Gradle在处理大型项目时表现尤为出色,它允许你自定义构建逻辑,并且可以很好地处理复杂的依赖关系。
  3. Redmine:这是一个开源的项目管理和问题跟踪工具,支持多种数据库和编程语言,包括Java。它提供了项目管理、问题跟踪、多语言支持等功能,适合各种规模的团队使用。
  4. GanttProject:这是一个轻量级的开源项目规划工具,特别适合需要甘特图和资源管理的小型项目。它可以帮助项目经理规划项目的时间表,跟踪进度,并管理资源分配。
  5. JIRA:虽然不是免费的,但JIRA是业界广泛使用的Java项目跟踪和管理工具。它提供了强大的敏捷开发支持,包括看板、冲刺板、故事墙等,同时也支持传统的项目管理方法。
  6. Eclipse IDE: 对于代码管理和版本控制,Eclipse是一个流行的集成开发环境,它支持多种编程语言,包括Java,并提供了许多用于代码编辑、调试和版本控制的工具。
  7. IntelliJ IDEA: 这是另一个强大的Java IDE,它提供了代码分析、代码生成、重构支持等一系列高级功能,帮助开发者提高生产力。
  8. Git: 虽然Git本身不是一个专门针对Java的项目管理工具,但它是版本控制系统的行业标准。对于代码的版本管理和协作开发来说,Git是必不可少的工具。
  9. SVN: 另一个流行的版本控制系统,虽然它的使用频率不如Git高,但对于一些团队来说,Subversion仍然是一个可靠的选择。
  10. Trac: Trac是一个轻量级的项目管理和问题跟踪系统,它集成了版本控制功能,非常适合小型团队使用。

总的来说,选择合适的项目管理工具需要考虑您的具体需求,例如项目规模、团队协作方式、预算限制等因素。建议您可以先了解每个工具的特点和优势,然后根据自己的实际情况进行选择。同时,您也可以考虑结合使用多个工具,以发挥各自的长处,更好地服务于项目的管理和发展。

Maven 曾经是一个包管理工具,现在已经有做项目配置管理的功能,所以可以看作是一个项目管理工具,基于命令行的。

IDEA 是一个 IDE(集成开发环境),JetBrains 公司的产品。不过 IDEA 只是一个简称,全称是 Intellij IDEA,翻译过来意思大概是“智能创意”,是个不错的产品名称。IDE 的主要作用是通过 GUI 方便用户使用,减轻用户的负担,毕竟全部用命令行来构建、调试什么的虽然可行,却很累。

在 IDEA 中,有三种构建系统 (Build System) 可供使用,即 IntelliJ、Maven 和 Gradle。它们使用不同的规范/格式来配置一个 Java 项目。其中 Maven 和 Gradle 都是应用范围更广的工具,只要有命令行工具就能使用(无非就是没得 GUI),而 IntelliJ 很大概率是不能脱离 IDEA 环境使用的。

如何选用,还是取决于项目团队。IDEA 社区版个人使用免费,但不支持 JavaEE 开发,其他版本比较贵,要看企业买不买 —— 所以如果要考虑使用授权的问题,对公层面还是选 Maven 或者 Gradle 的多一些,私下里用 IDEA 简化工作。Maven 是老牌,Gradle 的配置比 Maven 略难一些,至于怎么选择,一个看项目,二个还是看个人喜欢。

除此之外,Spring 好像也提供了一个项目管理工具,貌似还有 IDE……不过这个我不熟。

最后……对于初学者来说,我建议还是从 IDE 上手快一些,然后不要过分依赖 IDE,把语言、框架这些东西搞熟之后,需要熟悉构建过程和构建方法以及工具、配置等。不需要达到非常熟悉的程度,但至少没有 IDE 不能一筹莫展。

趁你还是新人在学习阶段,换一条赛道才是最优抉择

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏