Java 如何从外部maven依赖项中添加或排除某些包

Java 如何从外部maven依赖项中添加或排除某些包,java,security,maven,exception,tomcat,Java,Security,Maven,Exception,Tomcat,我的应用程序依赖于外部jar <dependency> <groupId>org.objectweb.joram</groupId> <artifactId>jftp</artifactId> <version>1.52</version> </dependency> org.objectweb.joram jftp 1.52 我主要对使用以下软件包感兴趣impo

我的应用程序依赖于外部jar

  <dependency>
    <groupId>org.objectweb.joram</groupId>
    <artifactId>jftp</artifactId>
    <version>1.52</version>
  </dependency>

org.objectweb.joram
jftp
1.52
我主要对使用以下软件包感兴趣import net.sf.jftp.net.*

但这个jar似乎还公开了org.apache.log4j包中的某些类,导致在将应用程序war文件部署到tomcat时出现以下异常

java.lang.SecurityException:class“org.apache.log4j.PropertyConfiguration”的签名者信息与同一包中其他类的签名者信息不匹配

有什么方法可以避免错误吗?

首先您可以使用

mvn dependency:tree
查看jftp加载的依赖项。然后,像这样排除您不想要的:

<dependency>
  <groupId>org.objectweb.joram</groupId>
  <artifactId>jftp</artifactId>
  <version>1.52</version>
  <exclusions>
    <exclusion>  <!-- declare the exclusion here -->
      <groupId>sample.ProjectB</groupId>
      <artifactId>Project-B</artifactId>
    </exclusion>
  </exclusions> 
</dependency>

org.objectweb.joram
jftp
1.52
示例项目B
B项目

这有帮助吗?谢谢你的链接,我已经浏览了这个页面。但是,如何确定要从jar文件中排除的组id和工件id呢?尝试了这个,但没有成功:(org.objectweb.joram jftp 1.52 commons logging api commons logging api