zoukankan      html  css  js  c++  java
  • Maven常见异常及解决方法(本篇停更至16-4-12)

    本篇文章记录了老猫在学习整合Maven和SSH过程中遇到的问题,有的问题可以解决。有的问题还不能解决。

    方法不一定适合全部的环境。但绝对是本人常遇到的常见异常。在这里做一个笔记和记录,也分享给大家,希望大家多多给出见解。

    假设有不同的见解,请依照编号写出自己的见解吧,老猫愿闻其详!


    此文老猫原创。转载请加本文连接:http://blog.csdn.net/nthack5730/article/details/46633287

    很多其它有关老猫的文章:http://blog.csdn.net/nthack5730





        1.ReasonPhrase: Forbidden:
            |--- 1.注意用户的权限以及角色role的设置,通常是没有权限才会被禁止的。




        2.Failed to collect dependencies:
            |--- 1.须要把parentproject,也就是package是pom的那个project先install一下。或者deploy
            |--- 2.须要注意在设置的<profile>工厂里面能否够訪问,假设直接訪问public分组,那么就要检查public分组是否加入了自己设置的工厂




        3.child module ....pom.xml does not exist:
            |---- 1.注意module的名称是否正确,有时候命名问题会导致找不到项目的
            |---- 2.注意一開始项目命名的规则问题




        4.Cannot detect Web Project version. Please specify version of Web Project through <version> configuration property of war plugin. E.g.: <plugin> <artifactId>maven-war-plugin</artifactId> <configuration> <version>3.0</version> </configuration> </plugin>
            |---- 1.和第五条一样在pom.xml增加plugin多的定义就可以
    <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
            <version>3.0</version>
        </configuration>
    </plugin>




        5.Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project marer-test-weixin: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode)
            |---- 1.增加下面插件引用:主要是由于没有指定web.xml的位置,在pom.xml中增加
    <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
            <version>3.0</version>
            <webXml>WebRootWEB-INFweb.xml</webXml><!-- 这里指定位置 -->
        </configuration>
    </plugin>




        6.javax.servlet.jsp.PageContext cannot be resolved to a type
            |---- 1.这是由于没有引入jsp-api引发的问题,在pom.xml引入:
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.0</version>
    </dependency>




        7.Failed to clean project: Failed to delete F:projectStest...... arget
            |---- 1.又一次使用命令clean一遍就可以




        8.The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory
            |---- 1.注意:jsp-api的依赖的scope一定要provide。即不打包进去。否则会和tomcat冲突
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jsp-api</artifactId>
        <scope>provided</scope>
    </dependency>

    此文老猫原创。转载请加本文连接:http://blog.csdn.net/nthack5730/article/details/46633287

    很多其它有关老猫的文章:http://blog.csdn.net/nthack5730



        9.java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld
            |---- 1.缺少Spring的aspects的jar包,在pom.xml中引入
            |---- 2.注意Spring的ORM框架也要导入,读取配置文件失败,原因是由于不能给txManager和hibernate注入Bean
            |---- 3.注意2:我在上面已经用全局变量指定了Spring的<version>...</version>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aspects</artifactId>
    </dependency>





        10.Spring注入失败,【在action中注入service的对象或在service中注入dao对象】发生空指针异常
            |---- 1.首先须要确定你的配置文件是否起了作用:applicationContext.xml是否已经在使用了
            |---- 2.确定全部的properties文件是正确无误的
            |---- 3.确定是否使用了struts2-spring-plugin依赖:
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-spring-plugin</artifactId>
    </dependency>




        11.-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.
            |---- 1.eclipse中使用maven插件的时候,执行run as maven build的时候报错。是由于JDK有问题
            |---- 2.假设确定自己的Eclipse中的Window->Preference->Java->Installed JREs 设置好相应的JDK环境
            |---- 3.在Default VM arguments中增加:-Dmaven.multiModuleProjectDirectory=$M2_HOME





        12.Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project jiabo-motor:Deployment failed: repository element was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepositor 
            |--- 1.deploy的设置没有设置好,这是由于在Maven中使用了Nexus中央仓库。可是在项目的pom.xml中没有设置
            |--- 2.增加例如以下设置:【自己之前自己定义的deploy的地址】
    <!-- 设置deploy的地址 -->
    <distributionManagement>
        <repository>
            <id>user-release</id>
            <name>user release resp</name>
            <url>http://localhost:8081/nexus/content/repositories/user-release/</url>
        </repository>

        <snapshotRepository>
            <id>user-snapshot</id>
            <name>user snapshot</name>
            <url>http://localhost:8081/nexus/content/repositories/user-snapshot/</url>
        </snapshotRepository>

    </distributionManagement>

    此文老猫原创,转载请加本文连接:http://blog.csdn.net/nthack5730/article/details/46633287

    很多其它有关老猫的文章:http://blog.csdn.net/nthack5730



        13. The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
            |---缺少jstl的包,在pom.xml增加
    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>




         14. SSH和SpringMVC框架在使用IDE自带的tomcat管理的情况下,须要增加Servlet.api以及设置他的声明周期为provide
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.0</version>
        <scope>provided</scope>
    </dependency>

    此文老猫原创,转载请加本文连接:http://blog.csdn.net/nthack5730/article/details/46633287

    很多其它有关老猫的文章:http://blog.csdn.net/nthack5730



      
         15.overlay [ id com.6dianedu:liudian-web] is not a dependency of the project.
            |---将须要打包的项目依赖进来,增加<type>war</type>属性




         16.ArtifactDescriptorException: Failed to read artifact descriptor for org.apache.shiro:shiro-core:jar:${shiro.version}: ArtifactResolutionException: Failure to transfer org.apache.shiro:shiro-core:pom:${shiro.version} from http://localhost:8081/nexus/content/groups/public/ was cached in the local repository, resolution will not be reattempted until the update interval of nexus has elapsed or updates are forced. Original error: Could not transfer artifact org.apache.shiro:shiro-core:pom:${shiro.version} from/to nexus
              这是因为在pom.xml里面的依赖使用了定义的变量${shiro.version},可是却没有在<properties>...</properties>中进行定义,仅仅要在pom.xml加上定义就可以
    <properties>
        <shiro.version>1.2.3</shiro.version>
    </properties>









  • 相关阅读:
    Python3安装turtle提示错误:Command "python setup.py egg_info" failed with error code 1
    慕学生鲜xadmin登录不成功解决办法
    mysql删除后ID不连续解决办法
    Mac 安装gevent
    ubuntu 下 docker的简单使用
    python 字典的一些简单操作
    列表推导式
    Serializer字段和选项
    添加包解决一些导包问题
    css 文本换行,文本空白符处理相关 属性:white-space word-wrap word-break
  • 原文地址:https://www.cnblogs.com/llguanli/p/6819541.html
Copyright © 2011-2022 走看看