如何使用 Maven 删除库中不需要的 jar
How to remove unwanted jars included in the lib using maven
我在我的应用程序中使用 viewservlets.jar 文件。我在 pom.xml.
中添加了以下依赖项
<dependency>
<groupId>org.eclipse.birt.runtime</groupId>
<artifactId>viewservlets</artifactId>
<version>4.4.1</version>
</dependency>
打包后我也可以在我的库中看到 birt 运行时 jar。许多其他罐子也是如此。我不确定所有这些罐子是如何包含在我的文件夹中的。
我正在使用 java 8。我仍然可以看到一些与 jdk14 相关的罐子(例如 bcmail-jdk14-1.38.jar , bcprov-jdk14-1.38.jar)。那也是多次。 war 文件因此变得越来越大。
更新
在运行时包中还有很多其他的包可以找到。如果我算的话,超过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>
我在我的应用程序中使用 viewservlets.jar 文件。我在 pom.xml.
中添加了以下依赖项<dependency>
<groupId>org.eclipse.birt.runtime</groupId>
<artifactId>viewservlets</artifactId>
<version>4.4.1</version>
</dependency>
打包后我也可以在我的库中看到 birt 运行时 jar。许多其他罐子也是如此。我不确定所有这些罐子是如何包含在我的文件夹中的。 我正在使用 java 8。我仍然可以看到一些与 jdk14 相关的罐子(例如 bcmail-jdk14-1.38.jar , bcprov-jdk14-1.38.jar)。那也是多次。 war 文件因此变得越来越大。
更新
在运行时包中还有很多其他的包可以找到。如果我算的话,超过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>