第三方罐子取决于其他第三方罐子

时间:2015-07-09 08:48:42

标签: java maven

我想使用第三方jar,我们称之为Third.jar。此Third.jar文件位于目录A /中。在A / lib /中有更多的罐子(让我们来自X方和Y方)。当我使用maven-install-plugin时,我只在本地Maven存储库中提供Third.jar,但是当我尝试运行它时它会失败,因为它找不到那些聚会X中包含的类,以及聚会Y jar

由于我不应该关心Third.jar的内部依赖性,如何用Apache Maven 3.3.3解决这个问题?

3 个答案:

答案 0 :(得分:1)

如果您只能在maven repository中找到它,则无需关心jar的内部依赖关系,因为maven会为您解决此问题。但是如果您使用maven-install-plugin将第三方jar添加到本地存储库,那么您是唯一应该关注添加的jar的内部依赖关系的人。这意味着您需要使用maven-install-plugin并在本地仓库中添加party Xparty Y个罐子,并将其与pom.xml一起添加到Third.jar

答案 1 :(得分:1)

除非你知道你不需要依赖,否则你必须假设你需要它们。

如果您需要节省空间,可以删除您知道自己没有使用的依赖项,但一般来说这很费时且容易出错,我会避免这样做。

答案 2 :(得分:0)

如果您确定不想要其他jar并且您的应用程序没有中断,那么您可以在pom.xml依赖项中指定排除项,如下所示。

<dependency>
    <groupId>YourGroup</groupId>
        <artifactId>Third</artifactId>
        <version>version</version> 
    <exclusions>
    <exclusion>
        <groupId>XGroup</groupId>
        <artifactId>X</artifactId>
    </exclusion>
    <exclusion>
        <groupId>YGroup</groupId>
        <artifactId>Y</artifactId>
    </exclusion>
  </exclusions>
</dependency>
<如果其他jar没有添加到本地存储库中,则删除第三个maven存储库的pom.xml中的其他依赖项。