博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Eclipse教程1 - 3分钟理清Maven依赖
阅读量:6433 次
发布时间:2019-06-23

本文共 3463 字,大约阅读时间需要 11 分钟。

  • 作者: 韩勇
  • 日期: 2018-12-02

前言

    大学学习 Java 时开始接触 Eclipse,喜欢其强大和方便,并立志成为一名 Java 开发。然而近几年 Eclipse 的流行度开始下滑,一方面有 Eclipse 自身的不足(安装插件需要科学上网,新版卡顿、报错),一方面我在想是不是 Eclipse 更适合我这样熟练使用 Eclipse 的用户,而不是普通 Java 开发。我觉得我应该写一些教程,帮助大家了解和使用 Eclipse,作为对 Eclipse 社区的回馈。

安装 Eclipse

首先需要安装 JDK,Linux(或 Cygwin)下可使用 安装(需要科学上网)。

sdk install java 8.0.191-oracle

    下载解压 Eclipse Java 开发软件包,可从国内镜像加速下载,如 。Eclipse 当前最新发布版为 2018-09 (4.9),个人试用感觉不成熟稳定(不知道是不是 Linux GTK 版的问题),还是推荐安装 Oxygen (4.7) 版本。解压后文件夹名默认为 eclipse,个人习惯修改为具体软件包名,如 eclipse-java-oxygen-3a

curl -O http://mirrors.ustc.edu.cn/eclipse/technology/epp/downloads/release/oxygen/3a/eclipse-java-oxygen-3a-linux-gtk-x86_64.tar.gztar xf eclipse-java-oxygen-3a-linux-gtk-x86_64.tar.gzmv -T eclipse eclipse-java-oxygen-3a

进入解压后的目录,建议对 eclipse.ini 进行简单配置修改:

  • -vmargs 前添加 -vm 设置 jdk bin 路径。
  • -Xms, -Xmx 参数修改为 1024m
  • 当前 Eclipse 版本在 Linux 下指定使用 GTK 2 更稳定友好。

Linux 下可使用如下命令快速完成配置,完整配置说明参考 。

( vm=$'-vm\\\n'"$(readlink -f "${JAVA_HOME}")/bin/" && sed -e '/^-vmargs$/ i '"${vm}" -e '/^-vm$/,+1 d' eclipse.ini -i )sed -r -e 's#^(-Xms|-Xmx)[0-9].*$#\11024m#g' eclipse.ini -ised -r -e $'/^--launcher.appendVmargs/ i --launcher.GTK_version\\\n2' -e '/^--launcher.GTK_version/,+1 d' eclipse.ini -i

最后执行解压目录下的 eclipse 即可启动。

3 分钟理清 Maven 依赖

新建或导入 Maven 项目

    Eclipse 完美支持 Maven,可直接新建或导入 Maven 项目(不要使用 mvn eclipse:eclipse,那玩意儿早就过时了)。Maven 依赖很多时常常让人头疼,使用 Eclipse 可以快速、清晰、方便的查看和管理 Maven 依赖。

    假设一个项目同时依赖了 async-http-clientgrpc-netty 。使用 Eclipse 新建一个 "Maven Project",向导界面勾选 "Create a simple project(skip archetype selection)" ,"Group Id" 和 "Artifact Id" 输入 hello。编辑 pom.xml 文件内容如下:

4.0.0
org.springframework.boot
spring-boot-starter-parent
2.1.1.RELEASE
hello
hello
0.0.1-SNAPSHOT
org.asynchttpclient
async-http-client
2.6.0
io.grpc
grpc-netty
1.6.1

保存 pom 文件,Eclipse 自动开始解析并下载缺失依赖,完成后按 "Alt+F5" 快捷键更新 Maven 项目配置。

查看 Maven 依赖树

切换到 "Dependency Hierarchy" 标签页,即可看到 Maven 依赖视图如下。左边是依赖树,右边是解析之后的依赖列表。

图片.png

分析特定 Maven 依赖

依赖太多看的眼花,假如我们要排查某个具体库的依赖情况,如 slf4j-api,只需在右上角 "Filter" 输入 slf4j 模糊匹配,即可只显示相关库的依赖路径,如下图所示。

图片.png

一下子清晰了很多,左边可看到 slf4j-apiasync-http-client 的依赖树上被间接依赖了两次。

  • 一次提示 (omitted for conflict with 1.7.25),表示依赖路径过深,与更短依赖路径上的版本 1.7.25 冲突(虽然当前版本也是 1.7.25)被排除掉。
  • 另一次出现在最短的依赖路径,作为最终依赖保留,依赖 scope 是 compile
  • 右边依赖列表突出显示最终依赖版本为 slf4j-api:1.7.25[compile]

清空 "Filter" 过滤条件,直接在右边依赖列表中点击一个依赖,即可查看其依赖解析情况。如点击查看 netty-handler 依赖详情如下。

图片.png

  • 可看到 netty-handler 最短依赖路径是第一处被 async-http-client 依赖,其中 (managed from 4.1.30.Final) 表示 async-http-client 原本依赖的是 4.1.30.Final 版本,但因为当前项目配置了依赖版本管理(即 dependencyManagement),被管理为 4.1.31.Final
  • 依赖版本管理直接指定了最终依赖版本,依赖树上的所有 netty-handler 都被管理为此版本。

显示 Maven groupId

为简单起见,依赖视图默认只显示 artifactId ,如果要查看 groupId ,可点击 "Show GroupId" 按钮切换显示 groupId。显示 groupId 可排查不同 groupId 同名 artifactId 的情况。

图片.png

查看和定位管理的依赖版本

如果在 pom 文件中依赖一个被管理的依赖,鼠标放上去即可看到被管理的依赖版本号,还可以点击跳转到定义此依赖管理的地方。

图片.png

查看最终生效的 Maven 配置

    本项目中并没有直接定义依赖管理,而是从 parent 继承的。除了依赖管理,Maven 还会继承合并属性配置,插件配置等配置。点击 "Effective POM" 标签页,可查看当前项目继承合并所有配置后,最终生效的配置。

图片.png

可看到本项目继承设置了 Java 编译版本为 1.8,还可看到其他所有属性定义,依赖版本,插件配置等配置。

Eclipse 对 Maven 进行了非常好的集成支持,还有其他许多功能,可以在实际使用中发现和体验。

友好排版请

转载地址:http://fyaga.baihongyu.com/

你可能感兴趣的文章
[CC]点云密度计算
查看>>
CATransition 动画处理视图切换
查看>>
[转载] 高等应用数学问题的matlab求解——第3章 微积分问题的计算机求解
查看>>
大整数比较大小
查看>>
八大排序算法的Java实现
查看>>
IDEA+Maven+Tomcat构建项目流程
查看>>
数据是重要的战略资源,数据同样是产品非常重要的组成部分。淘宝对中国最大的贡献,不只是方便了老百姓购物,而是把中国消费者的消费习惯数据慢慢沉淀下来。...
查看>>
Leetcode Find Minimum in Rotated Sorted Array
查看>>
Python接口测试-使用requests模块发送post请求
查看>>
System.currentTimeMillis()计算方式与时间的单位转换
查看>>
Extra:Variable Types
查看>>
ASP.NET温故而知新学习系列之ASP.NET多线程编程—.NET下的多线程编程Thread中委托的使用(六)...
查看>>
最新整理知识结构图
查看>>
linux安装mysql
查看>>
flask 2 进阶
查看>>
sentences in movies and teleplays[1]
查看>>
【20181023T1】战争【反向并查集】
查看>>
win7网络共享原来如此简单,WiFi共享精灵开启半天都弱爆了!
查看>>
iOS9 未受信任的企业级开发者
查看>>
paper 40 :鲁棒性robust
查看>>