Maven 对 zip 工件的依赖

pet*_*erh 5 java maven

我有一个项目需要依赖于另一个项目生成的 ZIP 文件。那个“其他项目”不在我的控制之下。正确构建我的项目需要 ZIP 文件。执行我的项目不需要它。我需要 Maven 为我下载 ZIP 文件。

我目前创建了对 ZIP 工件的依赖,如下所示:

<dependency>
    <groupId>org.foo</groupId>
    <artifactId>zeus</artifactId>
    <version>1.1</version>
    <type>zip</type>
    <scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我的问题是范围。如果我使用任何东西,但test它会带来很多来自“其他项目”的传递依赖性,这会搞砸我自己的项目。使用testas 范围实际上可以完成这项工作,但它在我的 IDE 中显示为测试依赖项。所以我觉得我做错了什么。这不是测试依赖性!

我查看了可用的 Maven 范围(“编译”、“提供”等),但似乎找不到与我的用例相匹配的范围。难道我做错了什么?

eol*_*ith 1

您必须将所有传递依赖项声明为排除项:

<dependency>
    <groupId>org.foo</groupId>
    <artifactId>zeus</artifactId>
    <version>1.1</version>
    <type>zip</type>
    <scope>compile</scope>
    <exclusions>
       <exclusion>
          <groupId>org.foo</groupId>
          <artifactId>transitive-dep-1</artifactId>
       </exclusion>
       <exclusion>
          <groupId>org.foo</groupId>
          <artifactId>transitive-dep-2</artifactId>
       </exclusion>
       <!-- add all transitive deps. -->
    </exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)