微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用maven删除lib中包含的有害jar

如何解决如何使用maven删除lib中包含的有害jar

我在我的应用程序中使用viewservlets.jar文件。我在pom.xml中添加了以下依赖项。

<dependency>
            <groupId>org.eclipse.birt.runtime</groupId>
            <artifactId>viewservlets</artifactId>
            <version>4.4.1</version>
        </dependency>

打包后,我也可以在lib中看到birt运行时jar。同样,其他许多罐子。我不确定所有这些罐子如何包含在我的文件夹中。 我正在使用Java8。仍然可以看到一些与jdk14相关的jar(例如 bcmail-jdk14-1.38.jar,bcprov-jdk14-1.38.jar )。那也是多次。因此,战争档案越来越大。

更新

在运行时软件包中,可以找到许多其他软件包。如果我算是超过30个。在这种情况下,我只需要一个jar文件。那么有没有办法只包含一个jar而不是对其余30多个条目不使用排除?

解决方法

Maven会自动过渡解决依赖关系,即,它将依赖关系的依赖关系也添加到WAR中。

通过这种方式,Maven确保您不会遇到ClassNotFound异常,因为viewservlets试图调用不存在的异常。

当然,在某些情况下,某些依赖项可能在运行时并未真正被调用。如果确定永不调用给定的工件,则可以使用exclusion将其排除。但是通常很难确定这一点,这可能不值得付出努力。

编辑:一个例子

<dependency>
  <groupId>org.eclipse.birt.runtime</groupId>
  <artifactId>viewservlets</artifactId>
  <version>4.4.1</version>
  <exclusions>
     <exclusion>
        <groupId>*</groupId>
        <artifactId>*</artifactId>
     </exclusion>
   </exclusions>
</dependency>
<dependency>
  <groupId>org.something</groupId>
  <artifactId>otherdependency</artifactId>
  <version>1.2.3</version>
</dependency>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。