zoukankan      html  css  js  c++  java
  • 操作实践:maven工程查找工程中多余的jar包

    声明:迁移自本人CSDN博客https://blog.csdn.net/u013365635

    版本迭代过程中对jar的依赖可能会产生变化,一些本不必再依赖的jar包可以因为没有清除而依然留在版本的发布包中,这些多余的jar包一方面使得版本包变大,另一方对这些jar包的加载延长了系统启动时间,消耗了更多的虚拟机内存。所以清理这些无用的jar包是非常必要的。
    使用 mvn dependency:analyze可以识别出的未使用的依赖项。清理完后建议实际运行,就可以找出来了哪些jar包确实不依赖的。因为在实际的开发中,比如java后端开发,很多依赖在代码中没有直接体现,但是在web.xml等中配置的类依赖该jar。
    这里举个例子说明下依赖处理问题。
    注:pom.xml没有配置打包成jar包所需的build信息。

    package com.test.testdependency;
    
    import org.apache.commons.lang3.StringUtils;
    
    public class MoveRedundantDependency {
        public boolean test(String str)
        {
            return StringUtils.isEmpty(str);
        }
    
        public void main(String[] args) {
            System.out.println(test("test"));
        }
    }
    

    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <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>com.test</groupId>
        <artifactId>testdependency</artifactId>
        <version>1.0-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <dependencies>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.7</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.46</version>
            </dependency>
        </dependencies>
    </project>
    

    执行mvn dependency:analyze,运行结果如下。

    [INFO] --- maven-dependency-plugin:2.8:analyze (default-cli) @ testdependency ---
    [WARNING] Unused declared dependencies found:
    [WARNING]    com.alibaba:fastjson:jar:1.2.46:compile
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    

    如上,命令执行后发现了无关的依赖项com.alibaba:fastjson:jar,符合代码中的实际情况。

  • 相关阅读:
    关于VBA的Exit For到底是怎样跳出for循环的小例子
    关于VBA的Exit For到底是怎样跳出for循环的小例子
    C#-Task.Run 和 Task.Factory.StartNew 区别
    java数组使用 四 反转数组元素
    java数组使用 三 循环数组元素
    java数组使用 二 数组的三种初始化
    java数组使用 一
    java方法 使用 四 可变参数
    java方法 使用 三 求阶乘
    java方法 使用 二 查找最大值
  • 原文地址:https://www.cnblogs.com/xsl-thumb-rfcs/p/9941593.html
Copyright © 2011-2022 走看看