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

标签 maven maven-2

我的 Maven 项目中有一个异常(exception):

类“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

最佳答案

This answer为我工作,使用 Servlet API 3.0。

解决方案是显式依赖 servlet-api ,并将其从 provided 更改为至 compile范围。

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

关于maven - javax.servlet.HttpConstraintElement”的签名者信息与同一包内其他类的签名者信息不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18848113/

相关文章:

java - 如何在桌面应用程序的 pom.xml 中仅配置一次 <manifest>

java - Spring上下文初始化失败

eclipse - Eclipse 运行配置可以在所选项目上调用 Maven --resume-from 吗?

java - 使用 maven 构建具有不同依赖项的相同 webapp 两次的最佳方法

eclipse - Ubuntu 中的 Maven 主页

maven-2 - Maven : how to export project with sources and dependencies

java - 将 Maven Java 应用程序部署到 Tomcat 7 上的 OpenShift

maven - 确保 Maven 中的依赖版本一致

java - Maven 程序集中是否有程序集 id 属性?

maven-2 - 如何阻止 Maven 在所有远程存储库中查找已安装到本地存储库的依赖项的 pom 文件?