• Maven 异常


    • Archive for required library: '*****org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar' in project 'SpringBootTest' cannot be read or is not a valid ZIP file

        出现以上错误,表示下载的jar包不可多,多半原因是下载过程中中途网络中断或其它原因导致没有完整下载下来,解决办法就是删除掉这个jar,让重新下载

    • mvn在本地库存在且完整,但是pom中依然报出文件不存在  

                 这种可能跟第一次下载或者从别的地方copy过来,引入_****.repositories文件不是本地通过下载的有关,将其删除掉即可。

    • Could not resolve dependencies for project

               mvn在依赖dependency中引入的另一个工程,如果是pom工程则需要声明<type>pom</type>,默认是寻找jar。同时mvn在dependency打包时,要将依赖的包先deploy到环境下,然后这边才可以从仓库中获取编译。

    • parent.relativePath 不存在问题

        默认mvn会在..pom.xml中查找父项目,如果找不到,会去本地仓库然后是远端仓库

                  设置<relativepath />,指定从远端仓库获取。

                  本地仓库如果使用命令的形式,则默认采用mvn的setting文件的本地仓库地址,而我在eclipse中指定的setting文件为Repository中的setting,导致绕了好大圈,不过只有问题才能让人进步。

    •   项目有大红色叹号,build path 发现有两个java的lib下的jar包在项目中却指向了alibaba。

         

        问题是alibaba的druid包引用了这两个,而在druid的pom文件中指向JAVA_HOME,如果指向错误就导致找不到文件。

                一种解决方案就是在引入druid中排除掉错误的这两个。项目一般都会引用jdk的lib。        

      
    <exclusions>
        <exclusion>
          <groupId>com.alibaba</groupId>
          <artifactId>jconsole</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.alibaba</groupId>
          <artifactId>tools</artifactId>
        </exclusion>
    </exclusions>

        另一种就是修改druid的pom文件,去掉jdk1.8中的..

    •  mvn 模块之间引用发生异常,但引用的那个项目没有报错

                  mvn项目之间的引用实质也是一种jar包的引用,因此尽管上一个项目没有报错,但不代表能够编译通过,因此如果build中发现引用出错,要对前一个项目进行package编译,查找问题。

    • Overriding Dependency Versions with Spring Boot

         mvn的jar包如果已经在某个中存在这个jar包,如果我们再手动引入,就会有版本覆盖的警告。不过新版本要在<properties></properties>中定义才可有效。

    •   failed to read artifact descriptor for

            这种可能跟第一次下载或者从别的地方copy过来,引入_****.repositories文件不是本地通过下载的有关,将其删除掉即可。如果是module那种,将对应的一并删除即可。 

    • Plugin execution not covered by lifecycle configuration

                   解决办法参照 https://blog.csdn.net/xyr05288/article/details/79569183

        原因是第三方的plugin中的phrase和mvn的公共的phrase都存在,从mvn生命周期lifecycle角度,导致程序不知道应该调用哪一个,因此报出以上错误。这种不影响程序运行。

        处理办法:第一种: 添加<pluginmanagement></pluginmanagement>将plugin作为公共管理。

        第二种:在错误处,点击进行ignore。

        

       第三种在lifecycle-mapping-metadata.xml文件中添加ignore:

    <lifecycleMappingMetadata>
        <pluginExecutions>
        
            <pluginExecution>
                <pluginExecutionFilter>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>findbugs-maven-plugin</artifactId>
                    <goals>
                        <goal>execute</goal>
                    </goals>
                    <versionRange>[3.0.1,)</versionRange>
                </pluginExecutionFilter>
                <action>
                    <ignore />
                </action>
            </pluginExecution>
            <pluginExecution>
                <pluginExecutionFilter>
                    <groupId>com.mycila</groupId>
                    <artifactId>license-maven-plugin</artifactId>
                    <goals>
                        <goal>execute</goal>
                    </goals>
                    <versionRange>[2.11,)</versionRange>
                </pluginExecutionFilter>
                <action>
                    <ignore />
                </action>
            </pluginExecution>
            <pluginExecution>
                <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <goals>
                        <goal>execute</goal>
                    </goals>
                    <versionRange>[2.17,)</versionRange>
                </pluginExecutionFilter>
                <action>
                    <ignore />
                </action>
            </pluginExecution>
        </pluginExecutions>
    </lifecycleMappingMetadata>

     6. Perhaps you are running on a JRE rather than a JDK

     mvn install 报出这个错,原因是eclispe默认采用jre,因此要在window->preference->java中修改为jdk即可。

     7. targetclassesMETA-INFMANIFEST.MF (系统找不到指定的路径。)

     pom文件报错,重新mvn update program,或者 clean项目

    8.Cannot change version of project facet Dynamic Web Module to 2.5. ****  line 1 Maven Java EE Configuration Problem

               是因为project facet的module从远端和本地不匹配导致。可进入然后将Dynamic 的对号去掉,然后Apply,然后在打上再apply。

              再update mvn project。

    9. mvn编译插件可解决mvn自动构建为J2E1.5的问题,mvn默认对应的j2e1.5导致

    复制代码
          <plugin>    
            <groupId>org.apache.maven.plugins</groupId>    
            <artifactId>maven-compiler-plugin</artifactId>    
            <configuration>    
                <source>1.8</source>    
                <target>1.8</target>    
            </configuration>    
         </plugin> 
    复制代码

     10. 删除或者改变pom.xml中的内容,但是idea-dependency中的依赖包还是未发生变化,且reimport也不起作用。

           setting.xml文件有错导致,可通过  mvn clean 来确定setting文件。

     11. Element 'dependency' cannot have character [children], because the type's content type is element-on

      pom.xml中 存在着一些特殊字符,可能是从别的地方粘贴而带来的。删除标签间的空格,重新格式化。

    12. mvn的pom中配置有repository但是hundson打包,或者本地下载jar包时,不加载新的repository地址问题。

    因 setting文件中 <mirrorof>*</mirrorOf>导致,切换为<mirrorof>center</mirrorOf>。即可。

    13.  501 HTTPS Required  mvn打包出现501的错误

        mvn对应的私服地址,不再支持http请求,需要去setting.xml中将错误信息中指出的私服地址变为https即可。

    14. mvn的repository已经引入就是下载不下来包。

      是否右上角的 MVN下的 Toggle offline mode 模式被打开导致下载不下来。

  • 相关阅读:
    23种设计模式之原子模式
    23种设计模式之外观模式(门面模式)
    Docker指令记录
    mysql 引擎
    G1调优随笔
    jvm面试题 新生代和 老年代的区别
    java虚拟机栈 相关操作
    .net大法总章
    .net趣味面试题总结
    IOC控制反转-依赖注入
  • 原文地址:https://www.cnblogs.com/DennyZhao/p/7838488.html
Copyright © 2020-2023  润新知