maven 依赖

要分析的pom文件:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>uk.ac.liverpool</groupId><artifactId>JTViewer</artifactId><version>0.7.1</version><name>The JT format parser and renderer</name><developers><developer><name>Fabio Corubolo</name><email>corubolo@gmail.com</email></developer><developer><name>Jerome Fuselier</name><email>jerome.fuselier@gmail.com</email></developer></developers><description>A pure Java library to decode the JT(TM) file format from Siemens PLM (TM).
See http://www.jtopen.com/ for samples and the file format specification. See licensing for the specific JT specification license data structures license. The library is produced independently and has no affiliation to Siemens PLM (TM).
This library curerntly parses JT files including faceted data, the Logocal Scene Graph and other the necessary information, and renders it using the JReality toolkit.</description><url>http://code.google.com/p/jt-java/</url><inceptionYear>2010</inceptionYear><build><plugins><!-- 该插件用于编译源码 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><!-- http://maven.apache.org/plugins/maven-compiler-plugin/ --><source>1.5</source><target>1.5</target></configuration></plugin><!-- 该插件用于设置主类,因为默认的mvn install生成的jar是不带主类入口的 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><archive><manifest><!-- 设置classpath路径 --><addClasspath>true</addClasspath><!-- 设置主类入口 --><mainClass>uk.ac.liv.jt.viewer.JTViewer</mainClass></manifest></archive></configuration></plugin><!-- 该插件能打包项目为指定格式,更重要的是能能够自定义包含/排除指定的目录或文件。 --><plugin><artifactId>maven-assembly-plugin</artifactId><executions><execution><!-- 绑定到package阶段,自动打包; --><id>assemble</id><phase>package</phase><goals><goal>single</goal></goals><configuration><descriptors><!-- 指定一个Assembly描述符文件,该文件指定了打包格式,包含的文件/过来的文件等信息,可以同时指定多个描述符文件,打包成不同的格式。 --><descriptor>src/main/assembly/jtv.xml</descriptor></descriptors></configuration></execution></executions><configuration><finalName>JTViewer</finalName></configuration></plugin></plugins></build><repositories><repository><id>google.code.fab4project</id><name>google.code.fab4project</name><!-- 这个地址现在已经不存在了 :<url>http://fab4browser.googlecode.com/svn/trunk/repository/</url> --><url>https://github.com/jasonknight/jreality/tree/master/lib</url></repository></repositories><dependencies><dependency><groupId>jreality</groupId><artifactId>jReality</artifactId><version>1.0</version><scope>system</scope><systemPath>D:/lib/jReality.jar</systemPath></dependency><dependency><groupId>jreality</groupId><artifactId>jrworkspace</artifactId><version>1.0</version><scope>system</scope><systemPath>D:/lib/jrworkspace.jar</systemPath></dependency><dependency><groupId>jreality</groupId><artifactId>jterm</artifactId><version>1.0</version><scope>system</scope><systemPath>D:/lib/jterm.jar</systemPath></dependency><dependency><groupId>jreality</groupId><artifactId>smrj.jar</artifactId><version>1.0</version><scope>system</scope><systemPath>D:/lib/smrj.jar</systemPath></dependency><!-- Sunflow是一个照片级的渲染系统,具备光线跟踪渲染内核,整个工程用Java编写,面向对象的结构 --><dependency><groupId>jreality</groupId><artifactId>sunflow.jar</artifactId><version>1.0</version><scope>system</scope><systemPath>D:/lib/sunflow.jar</systemPath></dependency><!-- 颜色检测器 --><dependency><groupId>jreality</groupId><artifactId>colorpicker</artifactId><version>1.0</version><scope>system</scope><systemPath>D:/lib/colorpicker.jar</systemPath></dependency><dependency><groupId>jreality</groupId><artifactId>beans</artifactId><version>1.0</version><scope>system</scope><systemPath>D:/lib/beans.jar</systemPath></dependency><dependency><groupId>com.lowagie</groupId><artifactId>itext</artifactId><version>2.1.3</version><type>jar</type><scope>compile</scope><exclusions><exclusion><artifactId>bcmail-jdk14</artifactId><groupId>bouncycastle</groupId></exclusion><exclusion><artifactId>bcprov-jdk14</artifactId><groupId>bouncycastle</groupId></exclusion></exclusions></dependency><dependency><groupId>com.thoughtworks.xstream</groupId><artifactId>xstream</artifactId><version>1.3.1</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.beanshell</groupId><artifactId>bsh</artifactId><version>2.0b4</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.codehaus.janino</groupId><artifactId>janino</artifactId><version>2.5.16</version><type>jar</type><scope>compile</scope></dependency><!-- 语法分析解析器 --><dependency><groupId>antlr</groupId><artifactId>antlr</artifactId><version>2.7.7</version><type>jar</type><scope>compile</scope></dependency></dependencies>
</project>


1.mvn dependency:list:

可查看当前项目的已解析依赖。强直接在当前项目pom中声明的依赖定义为顶层依赖,而这些顶层依赖的依赖则定义为第二层依赖,以此类推。

[INFO] --- maven-dependency-plugin:2.8:list (default-cli) @ JTViewer ---
[INFO]
[INFO] The following files have been resolved:
[INFO]    jreality:colorpicker:jar:1.0:system
[INFO]    jreality:jrworkspace:jar:1.0:system
[INFO]    org.beanshell:bsh:jar:2.0b4:compile
[INFO]    xpp3:xpp3_min:jar:1.1.4c:compile
[INFO]    jreality:beans:jar:1.0:system
[INFO]    com.thoughtworks.xstream:xstream:jar:1.3.1:compile
[INFO]    org.codehaus.janino:janino:jar:2.5.16:compile
[INFO]    jreality:jReality:jar:1.0:system
[INFO]    antlr:antlr:jar:2.7.7:compile
[INFO]    jreality:jterm:jar:1.0:system
[INFO]    jreality:smrj.jar:jar:1.0:system
[INFO]    jreality:sunflow.jar:jar:1.0:system
[INFO]    com.lowagie:itext:jar:2.1.3:compile
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS

2. mvn dependency:tree

能够查看依赖树,通过这棵树能够很清楚的看到某个依赖是通过哪条路径引入进来的。

[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ JTViewer ---
[INFO] uk.ac.liverpool:JTViewer:jar:0.7.1
[INFO] +- jreality:jReality:jar:1.0:system
[INFO] +- jreality:jrworkspace:jar:1.0:system
[INFO] +- jreality:jterm:jar:1.0:system
[INFO] +- jreality:smrj.jar:jar:1.0:system
[INFO] +- jreality:sunflow.jar:jar:1.0:system
[INFO] +- jreality:colorpicker:jar:1.0:system
[INFO] +- jreality:beans:jar:1.0:system
[INFO] +- com.lowagie:itext:jar:2.1.3:compile
[INFO] +- com.thoughtworks.xstream:xstream:jar:1.3.1:compile
[INFO] |  \- xpp3:xpp3_min:jar:1.1.4c:compile
[INFO] +- org.beanshell:bsh:jar:2.0b4:compile
[INFO] +- org.codehaus.janino:janino:jar:2.5.16:compile
[INFO] \- antlr:antlr:jar:2.7.7:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.080 s
[INFO] Finished at: 2016-10-13T10:04:12+08:00
[INFO] Final Memory: 13M/217M
[INFO] ------------------------------------------------------------------------

注意:

JTViewer:jar:0.7.1  //项目编译后的打包;

“+-”后面的jar包是顶层依赖包,在pom中进行了声明;

“|  \-”后面的jar包是引用包,未在pom中声明;

只要声明顶层包,其对应的引用包会自动去仓库中下载;

“\-”,不管在pom文件中最后一个依赖引用是哪个,其前缀都是“\-”,如最后一个是:\- antlr:antlr:jar:2.7.7:compile,或最后一个是 \- jreality:jReality:jar:1.0:system,而该依赖是重要依赖,不可缺少,即 ”\-” 仅表后最后一个依赖引用;

2. mvn dependency:analyze

可以帮助分析当前项目的依赖。

[INFO] --- maven-dependency-plugin:2.8:analyze (default-cli) @ JTViewer ---
[WARNING] Unused declared dependencies found:
[WARNING]    jreality:jrworkspace:jar:1.0:system
[WARNING]    jreality:jterm:jar:1.0:system
[WARNING]    jreality:smrj.jar:jar:1.0:system
[WARNING]    jreality:sunflow.jar:jar:1.0:system
[WARNING]    jreality:colorpicker:jar:1.0:system
[WARNING]    jreality:beans:jar:1.0:system
[WARNING]    com.lowagie:itext:jar:2.1.3:compile
[WARNING]    org.beanshell:bsh:jar:2.0b4:compile
[WARNING]    org.codehaus.janino:janino:jar:2.5.16:compile
[WARNING]    antlr:antlr:jar:2.7.7:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.697 s
[INFO] Finished at: 2016-10-13T10:51:20+08:00
[INFO] Final Memory: 14M/217M
[INFO] ------------------------------------------------------------------------

结果会有2部分:

首先是"Used declared dependencies found",指项目中使用到,但是没有显示声明的依赖,如果有的话,需要在pom中添加依赖声明;

另外就是“Unused declared dependencies found”,指项目中未使用的,但是显示声明的依赖,但是对于这样的依赖,不能直接删除,要仔细分析。因为dependency:analyze只会分析编译主代码和测试代码用到的依赖,一些执行测试和运行时需要的依赖是发现不了的。但是很显然有些依赖是必须的,不能删除。所以要小心寻找无用的依赖信息,然后再删除。

通过以上分析,可以需要与不需要的依赖,达到优化作用。

maven依赖--dependency命令相关推荐

  1. maven依赖冲突解决_Maven依赖树–解决冲突

    maven依赖冲突解决 Maven Dependency Tree is very helpful in understanding the project dependencies and reso ...

  2. Lucene和ikanalyzer(中文分词器)的简单使用增删改查(提供maven依赖)

    --于2020.08.28从jar包更新为了maven依赖 什么是Lucene?  Lucene是apache下的一个开放源代码的全文检索引擎工具包,通过它可以实现全文检索. 什么是全文检索(Full ...

  3. Maven学习九:依赖-dependency

    Maven依赖 1. 依赖的配置     根元素project下的dependencies可以包含一个或多个dependency元素,以声明一个或多个依赖.每个依赖可以包含的元素有: groupId. ...

  4. 最简单解决maven依赖报红 | 不用执行maven命令

    大部分解决maven依赖报红的方式都是下载jar然后执行mvn命令,下面我分享一个简单的方法 首先看到报红的内容 然后去maven官网下载对应的jar包 然后放到自己本地的maven仓库 新建一个与j ...

  5. dependency报红_解决IDEA中Maven依赖包导入失败报红问题(总结最有效8种解决方案)...

    问题描述: 真的,说来话长,这应该是我花最多时间去解决关于Maven依赖包导入的问题,以前粘贴复制导入,自动下载成功了, 这次怎么搞,怎么让他自动下载都还是红红的一片, 花了大半天,各种尝试,只为搏得 ...

  6. 一次Maven依赖冲突采坑,把依赖调解、类加载彻底整明白了

    今年年初的时候,阅读过<Maven实战>,当时有了解到Maven可以依赖调解,即当包版本不一致时,会根据一定规则选择相应的包来加载,从而避免冲突.当时不解的是既然Maven都能解决冲突,为 ...

  7. 各数据库连接配置与maven依赖安装

    maven用的比较多,所以自己去捣鼓了一下:以下是关于数据库配置的一块,把相关的内容张贴出来,以备不时之需 //MySql 配置文件(maven):pom.xml <dependency> ...

  8. 下载maven依赖到指定目录

    文章目录 1 场景 2 方案 3 代码 3.1 目录 3.2 执行 1 场景 将maven依赖jar包和依赖jar包拷贝到指定目录 2 方案 使用maven插件maven-dependency-plu ...

  9. Maven 依赖冲突踩坑后,将依赖调解、类加载彻底整明白了

    作者 | 草捏子 来源 | 草捏子(ID:chaycao) 头图 |  CSDN 下载自东方IC 今年年初的时候,阅读过<Maven实战>,当时有了解到Maven可以依赖调解,即当包版本不 ...

最新文章

  1. python 简单的server请求
  2. 朴素贝叶斯算法详解及python代码实现
  3. 判断大小简单算法_JVM GC算法
  4. 策略模式,工厂模式,单例模式编写身份证的验证算法
  5. java flash 压缩_Java和flash通信中数据的zlib压缩与解压缩
  6. 威纶通宏开机后使用初始化宏指令_你按下电脑开机键后,电脑都干了些什么?...
  7. 用VSCode写IEEE论文
  8. 【无标题】How to Programe 2021 GMC Terrain Smart Key Programming by Autel IM508
  9. win10安装Visual Studio 2019失败
  10. (二十三)八部众(2)
  11. win10虚拟机环境下运行驱动程序
  12. JAVA并发容器-ConcurrentHashMap 1.7和1.8 源码解析
  13. Apollo安装记录
  14. python爬取并分析淘宝商品信息
  15. sql注入之联合注入
  16. Python守护进程daemon实现
  17. 关于Cron表达式中的周一至周五正确的配置
  18. 【Python入门系列】一个简单的数据分析问题——用Pandas揭秘美国选民的总统喜好
  19. 小米路由器青春版装linux,小米路由器青春版开启SSH
  20. 基于屌丝青年网LIiu-One主题+WordPress内核

热门文章

  1. 微信邮件怎么设置自动回复,你了解吗?
  2. 《天外世界》:黑曜石释放创意的全新豁口
  3. 【Git】删除文件(转载)
  4. window 定时任务错误
  5. python期货_用Python编写期货(asyncio)
  6. wps 2019中点击Axmath或者AxGraph无反应
  7. set与list性能对比
  8. Android按键功能重定义
  9. Sublime Text 设置文件详解
  10. 手机贴膜利润超百倍 消费者为无用功能高价买单