Maven排除是持久性的

时间:2014-05-20 14:24:11

标签: java maven

我在我的应用程序POM中有这个:

                <dependency>
                    <groupId>org.jboss.errai</groupId>
                    <artifactId>errai-cdi-jetty</artifactId>
                    <version>${errai.version}</version>
                    <exclusions>
                        <exclusion>
                            <groupId>org.mortbay.jetty</groupId>
                            <artifactId>jetty-plus</artifactId>
                        </exclusion>
                        <exclusion>
                            <groupId>org.mortbay.jetty</groupId>
                            <artifactId>jetty-naming</artifactId>
                        </exclusion>
                    </exclusions>
                </dependency>

但是,我仍然可以在jetty-plus文件夹中看到jetty-namingWEB-INF\lib(即mvn clean install之后)。有哪些方法可以确定如何解决此问题。

更新

然而mvn依赖:树显示:

[INFO] +- org.jboss.errai:errai-cdi-jetty:jar:3.0-SNAPSHOT:compile
[INFO] +- org.eclipse.jetty:jetty-server:jar:9.2.0.RC0:compile
[INFO] |  +- javax.servlet:javax.servlet-api:jar:3.1.0:compile
[INFO] |  +- org.eclipse.jetty:jetty-http:jar:9.2.0.RC0:compile
[INFO] |  \- org.eclipse.jetty:jetty-io:jar:9.2.0.RC0:compile
[INFO] +- org.eclipse.jetty:jetty-plus:jar:9.2.0.RC0:compile
[INFO] |  \- org.eclipse.jetty:jetty-webapp:jar:9.2.0.RC0:compile
[INFO] |     +- org.eclipse.jetty:jetty-xml:jar:9.2.0.RC0:compile
[INFO] |     \- org.eclipse.jetty:jetty-servlet:jar:9.2.0.RC0:compile
[INFO] |        \- org.eclipse.jetty:jetty-security:jar:9.2.0.RC0:compile
[INFO] +- org.eclipse.jetty:jetty-jndi:jar:9.2.0.RC0:compile
[INFO] |  \- org.eclipse.jetty:jetty-util:jar:9.2.0.RC0:compile

2 个答案:

答案 0 :(得分:1)

处理此问题的最佳方法是按照注释中的建议来排序依赖项,但如果由于某种原因这是不可行的,您还可以通过添加排除显式排除您不想要的jar文件像这样标记到maven-war-plugin:

<build>
  <plugins>
    <plugin>
      <artifactId>maven-war-plugin</artifactId>
      <version>2.4</version>
      <configuration>
        <packagingExcludes>WEB-INF/lib/i-dont-want-this.jar</packagingExcludes>
      </configuration>
    </plugin>
  </plugins>
</build>

答案 1 :(得分:0)

我建议在您遇到问题的项目中使用mvn dependency:tree。这将打印整个依赖关系树,您将能够看到有问题的depdendencies来自何处,并将它们排除在正确的位置。

我猜你没有从正确的模块中排除(请记住,依赖关系可能来自几个模块)

修改:我看到您添加了dependency:tree,这很棒。现在你需要搜索你的依赖项并继续我之前提到的。