欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SSM+tomcat+Maven,自动依赖外部引入包

程序员文章站 2022-05-24 15:29:43
...

第一阶段:

        程序中想要一个能够处理数字影音的功能。

        读取上传视频文件的时长

        最终采取的方法是

    private String ReadVideoTime(File source) {

    	Encoder encoder = new Encoder();
    	String length=“ ” ;
    	try {
    	    MultimediaInfo m = encoder.getInfo(source);
   	    long ls = m.getDuration()/1000;
    	    int hour = (int) (ls/3600);
    	    int minute = (int) (ls%3600)/60;
    	    int second = (int) (ls-hour*3600-minute*60);
    	    length = hour+"小时"+minute+"分"+second+"秒";
    	} catch (Exception e) {
    	    e.printStackTrace();
    	}
    	return length;
    }

        但这需要import两个类

    import it.sauronsoftware.jave.Encoder;
    import it.sauronsoftware.jave.MultimediaInfo;

    那么问题来了,maven库里没有这个包,用maven编译也没用

    下载“jave-1.0.2.jar”

    下载链接:http://download.csdn.net/detail/xiaofei_9070/9650294

    手动,外部引入包,第一阶段完成

    (记得在(本地磁盘的tomcat安装处)apache-tomcat-7.0.82\lib下也扔一份包)

第二阶段:

     但是,本地手动导入不行啊,要上传SVN

    孩子啊,你要努力成为一名让团队里的每一个后端都可以用、可以读得舒服的代码!

    在resource下,新建lib,里面放进一个小小的“jave-1.0.2.jar”

    在pom.xml中写一小段

        <dependency>
            <groupId>it.sauronsoftware.jave</groupId>
            <artifactId>jave</artifactId>
            <version>1.0.2</version>
             <scope>system</scope>
            <systemPath>${project.basedir}/src/main/resources/lib/jave-1.0.2.jar</systemPath>
        </dependency>

       这一小段我一直没有在网上找到正确的对应“jave-1.0.2.jar”的写法

       不是很明白groupIdartifactId的意义

       其中的基本概念最后也不是特别清晰有待探索,但是可以说的是

       groupId是该包中的目录结构

       artifactId就是XXX.jar

       systemPath是包在项目中的路径

      如何获取包中的目录:

       用压缩文件的形式打开.jar文件,并不用解压,直接预览,发现文件目录结构

      我们可以看到文件的目录结构是:it.sauronsoftware.jave

SSM+tomcat+Maven,自动依赖外部引入包

       这是我观察网上大量写<dependency>的规律的出的结果

       但是还是知其然不知所以然,很惭愧

       不管怎么样于是乎,终于可以不用手动依赖外部包了

       开开心心

第三阶段:

       但是,在程序跑起来之前,控制台会报一些错

       虽然并不影响程序 ,但是看得很让人伤心

SSM+tomcat+Maven,自动依赖外部引入包

         org.apache.tomcat.util.bcel.classfile.ClassFormatException: It is not a Java .class file

       【文字写一条错误方便大家搜索】

       【就算报了这么多错,之后真的可以顺利地跑起来!相信我!】

         这些报错大概就是说,这些.class文件我没法顺利地**读取

         我在网上搜索了很多解决方法,主要分为两个流派

  1. .class文件在解密的过程中发生错误无法顺利地解密,建议catalina.properties文件 的tomcat.util.scan.DefaultJarScanner.jarsToSkip中添加DB2驱动的Jar包文件名如”db2jcc4.jar” 即可。         
  2. 使用Tomcat8.0+

       方法1,我试过了没有用哦,可能针对的不是我这个问题,我这个可能不是解密的报错?

       方法2,我直接问公司里的前辈会不会发生冲突,得到了“肯定会冲突”的回答,万念俱灰

       我至少放弃了两次

        “又不是不能用,凑合凑合用呗就当看不到了”

        【对未成年或成年人的警示!!!无论你几岁,无论你在学习还是工作还是谈恋爱,如果产生这种想法,随便用什么方法打自己一下,形成厌恶反射,进入人生新高度,客气了不用谢我】

          终于,在某次浏览无数网上漫无目的的资料后,脑中灵感闪现

          用方法1结合了“jave-1.0.2.jar”

           在tomcat的server文件夹下找到还是catalina.properties文件中加入一行“,/[回车]jave-*.jar”

            【是键入回车!!!enter!!!不是让你打“回车”两个字!!!醒醒!!!!】

       SSM+tomcat+Maven,自动依赖外部引入包

SSM+tomcat+Maven,自动依赖外部引入包

       顺利解决报错问题哈哈哈哈哈哈哈哈哈哈哈哈!!!!!!

    【初出茅庐,请多指教。【鞠躬】】