我有一个项目需要依赖于另一个项目生成的 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 范围(“编译”、“提供”等),但似乎找不到与我的用例相匹配的范围。难道我做错了什么?
您必须将所有传递依赖项声明为排除项:
<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)
| 归档时间: |
|
| 查看次数: |
10526 次 |
| 最近记录: |