Maven “javax.servlet.HttpConstraintElement”';的签名者信息与同一包中其他类的签名者信息不匹配

Maven “javax.servlet.HttpConstraintElement”';的签名者信息与同一包中其他类的签名者信息不匹配,maven,maven-2,Maven,Maven 2,我的maven项目中有一个例外: 类“javax.servlet.HttpConstraintElement”的签名者信息与同一包中其他类的签名者信息不匹配 问题: 如何解决这个问题 PS: 据我所知,我使用两个JAR,都包含HttpConstraintElement。这些maven依赖项有两个不同的版本。所以我试着: $ mvn dependency:tree -Dverbose |grep servlet [INFO] +- javax.servlet:servlet-api:jar:2.5

我的maven项目中有一个例外:

类“javax.servlet.HttpConstraintElement”的签名者信息与同一包中其他类的签名者信息不匹配

问题:

如何解决这个问题

PS:

据我所知,我使用两个JAR,都包含HttpConstraintElement。这些maven依赖项有两个不同的版本。所以我试着:

$ mvn dependency:tree -Dverbose |grep servlet
[INFO] +- javax.servlet:servlet-api:jar:2.5:compile
[INFO] +- javax.servlet.jsp:jsp-api:jar:2.2:compile
[INFO] +- javax.servlet:jstl:jar:1.2:compile
[INFO] |  +- org.apache.tiles:tiles-servlet-wildcard:jar:2.2.2:compile
[INFO] |  |  +- (org.apache.tiles:tiles-servlet:jar:2.2.2:compile - omitted for duplicate)
[INFO] |  |  +- (org.apache.tiles:tiles-servlet:jar:2.2.2:compile - omitted for duplicate)
[INFO] |  |  +- (org.apache.tiles:tiles-servlet:jar:2.2.2:compile - omitted for duplicate)
[INFO] +- org.apache.tiles:tiles-servlet:jar:2.2.2:compile
[INFO] |  +- (org.apache.tiles:tiles-servlet:jar:2.2.2:compile - omitted for duplicate)
[INFO]    \- org.eclipse.jetty:jetty-servlet:jar:9.0.0.M4:compile
[INFO]             +- org.eclipse.jetty.orbit:javax.servlet:jar:3.0.0.v201112011016:compile
为我工作,使用ServletAPI3.0

解决方案是采用对
servlet api
的显式依赖,并将其从
提供的
范围更改为
编译范围

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.0.1</version>
        <scope>compile</scope>
    </dependency>

javax.servlet
javax.servlet-api
3.0.1
编译

path或classpath中的两个JDK可能会产生类似的问题